Python面试必问的20道题,答对一半算你牛

📅 发布时间:2026/10/3 6:40:05
Python面试必问的20道题,答对一半算你牛
列表和元组有什么区别列表可变支持增删改元组不可变可作字典键。元组内存更小速度略快。is和的区别is比较内存地址比较值。小整数和字符串驻留时可能相同但大对象需谨慎。深拷贝和浅拷贝的区别浅拷贝只复制顶层嵌套对象仍共享深拷贝递归复制所有层。copy.deepcopy实现深拷贝。什么是GIL全局解释器锁CPython中同一时刻只有一个线程执行字节码。它使多线程无法并行计算但I/O等待时会释放。多线程和多进程怎么选CPU密集用多进程I/O密集用多线程或异步。多进程绕开GIL但通信开销大。装饰器的作用在不修改原函数代码的前提下增加功能如日志、计时、权限校验。本质是接收函数返回新函数。生成器和迭代器的区别迭代器实现__iter__和__next__生成器是简化版用yield自动实现。生成器惰性求值省内存。闭包是什么内层函数引用外层函数的变量且外层函数返回内层函数。闭包可保存状态但注意循环变量陷阱。args和kwargs的作用args接收任意位置参数为元组kwargs接收任意关键字参数为字典。Python内存管理机制引用计数为主标记清除和分代回收为辅。对象引用为0时立即回收循环引用靠GC解决。垃圾回收怎么工作引用计数实时回收标记清除处理循环引用分代回收将对象分三代越老扫描越少提升效率。元类是什么类的类。type是默认元类。元类可控制类的创建过程用于框架和ORM。上下文管理器有什么用用with管理资源确保退出时执行清理。实现__enter__和__exit__或使用contextlib。协程和线程的区别协程是单线程内用户态调度切换开销极小线程由操作系统调度切换成本高。协程适合高并发I/O。列表推导式和生成器表达式的区别列表推导式立即生成列表占内存生成器表达式返回生成器惰性求值省内存。字典的底层实现哈希表键必须可哈希。Python 3.7后有序。冲突用开放寻址扩容时重新哈希。异常处理中finally的作用无论是否异常都会执行常用于释放资源。else在无异常时执行。lambda的用途匿名函数适合简单逻辑常配合map、filter、sorted使用。不能包含语句。新式类和旧式类的区别Python 3只有新式类默认继承object。新式类支持super、__slots__和描述符。如何优化Python性能用内置函数、局部变量、生成器避免循环内重复计算用cProfile定位瓶颈必要时用C扩展或PyPy。这20道题覆盖了Python面试的核心考点。能答对一半说明基础扎实答对八成以上面试官大概率会对你刮目相看。