152 lines
4.2 KiB
JSON
152 lines
4.2 KiB
JSON
|
|
{
|
|||
|
|
"timestamp": "2026-01-07 14:04:24",
|
|||
|
|
"job_position": "Python开发",
|
|||
|
|
"questions": [
|
|||
|
|
{
|
|||
|
|
"main_question": "请详细解释Python中的GIL(全局解释器锁)的实现机制,以及它对多线程编程的深层影响。",
|
|||
|
|
"follow_ups": [
|
|||
|
|
"GIL的存在对CPU密集型和I/O密集型任务的影响有何不同?请具体分析其原因。",
|
|||
|
|
"在Python 3.2+中,GIL的实现有哪些改进?这些改进如何影响线程切换性能?",
|
|||
|
|
"除了使用多进程,还有哪些技术可以绕过GIL的限制?请比较它们的优缺点。"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"main_question": "请深入分析Python中的内存管理机制,包括引用计数、垃圾回收和内存池。",
|
|||
|
|
"follow_ups": [
|
|||
|
|
"Python的循环引用问题是如何产生的?垃圾回收器如何检测和处理循环引用?",
|
|||
|
|
"Python的分代垃圾回收机制是如何工作的?各代的回收策略有什么不同?",
|
|||
|
|
"如何在Python中优化内存使用?请结合具体场景说明。"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"main_question": "请详细解释Python中的装饰器(Decorator)的实现原理,以及如何实现带参数的装饰器和类装饰器。",
|
|||
|
|
"follow_ups": [
|
|||
|
|
"装饰器的执行时机是什么时候?它如何影响被装饰函数的元数据?",
|
|||
|
|
"如何实现一个装饰器,使其能够保留被装饰函数的文档字符串和函数名?",
|
|||
|
|
"装饰器链的执行顺序是怎样的?请举例说明。"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"main_question": "请深入分析Python中的生成器(Generator)和协程(Coroutine)的工作原理,以及它们在异步编程中的应用。",
|
|||
|
|
"follow_ups": [
|
|||
|
|
"生成器表达式和列表推导式在内存使用上有什么本质区别?请结合big O表示法分析。",
|
|||
|
|
"Python 3.5+引入的async/await语法是如何基于生成器实现的?",
|
|||
|
|
"如何使用asyncio库实现高效的异步I/O操作?请给出具体示例。"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"main_question": "请详细解释Python中的面向对象编程高级特性,包括元类(Metaclass)、描述符(Descriptor)和混入(Mixin)。",
|
|||
|
|
"follow_ups": [
|
|||
|
|
"元类的作用是什么?如何使用元类控制类的创建过程?",
|
|||
|
|
"描述符协议的三个方法(__get__, __set__, __delete__)是如何工作的?请实现一个自定义描述符。",
|
|||
|
|
"Mixin模式在Python中的应用场景是什么?如何避免Mixin带来的方法名冲突问题?"
|
|||
|
|
]
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"answers": [
|
|||
|
|
"j",
|
|||
|
|
"j",
|
|||
|
|
"1",
|
|||
|
|
"1",
|
|||
|
|
"1",
|
|||
|
|
"1",
|
|||
|
|
"1"
|
|||
|
|
],
|
|||
|
|
"scores": [
|
|||
|
|
"一般",
|
|||
|
|
"需要改进",
|
|||
|
|
"一般",
|
|||
|
|
"良好",
|
|||
|
|
"需要改进",
|
|||
|
|
"需要改进",
|
|||
|
|
"需要改进"
|
|||
|
|
],
|
|||
|
|
"interviewers": [
|
|||
|
|
"严谨型"
|
|||
|
|
],
|
|||
|
|
"question_interviewers": [
|
|||
|
|
"严谨型",
|
|||
|
|
"严谨型",
|
|||
|
|
"严谨型",
|
|||
|
|
"严谨型",
|
|||
|
|
"严谨型",
|
|||
|
|
"严谨型",
|
|||
|
|
"严谨型"
|
|||
|
|
],
|
|||
|
|
"answer_timestamps": [
|
|||
|
|
{
|
|||
|
|
"question_index": 0,
|
|||
|
|
"start_time": "14:04:04",
|
|||
|
|
"end_time": "14:04:09"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"question_index": 0,
|
|||
|
|
"start_time": "14:04:04",
|
|||
|
|
"end_time": "14:04:12"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"question_index": 1,
|
|||
|
|
"start_time": "14:04:12",
|
|||
|
|
"end_time": "14:04:16"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"question_index": 2,
|
|||
|
|
"start_time": "14:04:16",
|
|||
|
|
"end_time": "14:04:19"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"question_index": 3,
|
|||
|
|
"start_time": "14:04:19",
|
|||
|
|
"end_time": "14:04:21"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"question_index": 3,
|
|||
|
|
"start_time": "14:04:19",
|
|||
|
|
"end_time": "14:04:22"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"question_index": 4,
|
|||
|
|
"start_time": "14:04:22",
|
|||
|
|
"end_time": "14:04:24"
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"answer_durations": [
|
|||
|
|
5.135361,
|
|||
|
|
7.764845,
|
|||
|
|
4.06968,
|
|||
|
|
3.048585,
|
|||
|
|
1.221883,
|
|||
|
|
2.614996,
|
|||
|
|
1.84018
|
|||
|
|
],
|
|||
|
|
"answer_changes": [
|
|||
|
|
{
|
|||
|
|
"question_index": 0,
|
|||
|
|
"changes": 1
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"question_index": 0,
|
|||
|
|
"changes": 1
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"question_index": 1,
|
|||
|
|
"changes": 1
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"question_index": 2,
|
|||
|
|
"changes": 1
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"question_index": 3,
|
|||
|
|
"changes": 1
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"question_index": 3,
|
|||
|
|
"changes": 1
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"question_index": 4,
|
|||
|
|
"changes": 1
|
|||
|
|
}
|
|||
|
|
]
|
|||
|
|
}
|