跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像AI 生图工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonAI算法

Python 50 道核心面试题:从基础到高级实战解析

Python 面试题涵盖基础语法、内存管理、并发编程及底层原理等 50 个核心考点。内容分为基础必知、中高级原理及高级性能设计三个梯度,包含列表元组区别、GIL 锁机制、描述符与元类、异步 IO 实现及 LRU 缓存设计等关键知识点。适合后端、数据分析及 AI 方向求职者系统复习,通过对比解析与追问方向强化面试应对能力。

观心发布于 2026/3/29更新于 2026/7/2932 浏览

这份清单精选了 50 道 Python 高频面试题,覆盖从基础语法到底层原理的完整知识体系。为了方便分阶段复习,题目按难度划分为三个梯度,适合后端、数据分析及 AI 方向求职者系统准备。

1–20 基础 & 必知必会
  1. Python 中列表和元组的区别?什么时候用哪个? 列表可变(mutable),元组不可变(immutable);列表用 [],元组用 ()。元组可作为 dict 键、函数多返回值;列表适合动态增删,元组适合固定结构或常量。 考察:可变性、内存、哈希性

  2. *args 和 **kwargs 是什么?有什么用? *args 收集位置参数成元组,**kwargs 收集关键字参数成字典。常用于函数装饰器、灵活接口、继承 super().__init__()。 追问:写一个接受任意参数的函数

  3. Python 中 == 和 is 的区别? == 比较值,is 比较身份(id)。小整数/字符串有缓存机制,-5~256 整数、部分字符串 is 为 True。 高频追问:a = 257; b = 257; a is b 结果?

  4. 浅拷贝和深拷贝的区别?如何实现? 浅拷贝只复制第一层(copy.copy / 切片),深拷贝递归复制所有层(copy.deepcopy)。嵌套可变对象时深拷贝才真正独立。 代码:import copy; b = copy.deepcopy(a)

  5. Python 中可变对象和不可变对象有哪些? 不可变:int、float、str、tuple、frozenset、bytes 可变:list、dict、set、bytearray、自定义类(未重写 __hash__ 等)

  6. range() 和 xrange() 的区别?(Python2 vs 3) Python3 中 range() 就是 Python2 的 xrange(),返回迭代器,内存友好;Python2 range() 返回列表。

  7. Python 中 pass、break、continue 的作用? pass 占位符(空函数/类);break 跳出当前循环;continue 跳过本次循环进入下一次。

  8. 什么是 duck typing? 鸭子类型——'如果它走路像鸭子,叫声像鸭子,那么它就是鸭子'。关注行为而非类型,常用于协议/魔术方法。

  9. __init__ 和 __new__ 的区别? __new__ 是静态方法,先创建实例(返回 cls 的实例),__init__ 初始化已创建的实例。通常只重写 __init__,单例模式才重写 __new__。

  10. Python 中 @staticmethod、@classmethod、@property 区别? staticmethod 无隐式参数;classmethod 第一个参数是 cls;property 把方法伪装成属性(getter/setter/deleter)。

  11. Python 中的 GIL 是什么?对多线程有何影响? 全局解释器锁(Global Interpreter Lock)。同一时刻只有一个线程执行 Python 字节码。CPU 密集型任务多线程不加速,IO 密集型仍受益。

  12. Python 中常见的内存管理机制? 引用计数 + 分代垃圾回收(gc 模块)。小对象池(-5~256 整数、部分字符串)。

  13. isinstance() 和 type() 的区别? isinstance(obj, (list, tuple)) 支持元组判断继承关系;type(obj) 只返回确切类型。

  14. try...except...else...finally 中 else 和 finally 的执行时机? else 只在没有异常时执行;finally 无论是否异常都执行(常用于资源释放)。

  15. Python 中 __slots__ 有什么用? 限制实例属性,节省内存(尤其大量小对象时),禁止 __dict__。

  16. Python 中的命名空间有哪几种?LEGB 规则是什么? Local → Enclosing → Global → Built-in 查找顺序:局部 → 闭包 → 全局 → 内置

  17. Python 中 nonlocal 和 global 的作用? nonlocal 修改外层函数(非全局)的变量;global 修改模块级变量。

  18. Python 中 sort() 和 sorted() 的区别? sort() 是列表方法,原地排序返回 None;sorted() 是内置函数,返回新列表,可作用于任何可迭代对象。

  19. Python 中如何实现单例模式?(至少两种方式) 方式 1:重写 __new__ 方式 2:装饰器 / 元类 / 模块导入(最常用)

  20. Python 中列表推导式、字典推导式、生成器表达式写法?

    [x**2 for x in range(10)]      # 列表
    {x: x**2 for x in range(10)}   # 字典
    (x**2 for x in range(10))      # 生成器
    
21–35 中高级 & 原理向
  1. Python 中描述符(Descriptor)是什么?property 底层原理? 实现了 __get__、__set__、__delete__ 的类。property 就是描述符的简化写法。

  2. Python 中元类(metaclass)是什么?常见使用场景? 创建类的类(type 是最常见的元类)。ORM(如 Django Model)、自动注册、属性校验。

  3. Python 中的 MRO(方法解析顺序)是什么?C3 线性化算法? 多继承时方法查找顺序。Python3 全用 C3(合并 + 拓扑排序)。

  4. Python 中 __getattribute__ 和 __getattr__ 区别? __getattribute__ 每次属性访问都调用;__getattr__ 只在普通查找失败时调用。

  5. Python 中生成器和迭代器的区别?如何自定义迭代器? 迭代器实现 __iter__ 和 __next__;生成器是迭代器的简写(yield)。生成器自动实现迭代器协议。

  6. @functools.lru_cache 原理和使用场景? 最近最少使用缓存装饰器,常用于递归(如斐波那契)、避免重复计算昂贵函数。

  7. Python 中协程、生成器、async/await 的关系? 生成器 → 协程基础;Python 3.5+ 用 async def / await 实现原生协程(基于生成器)。

  8. Python 中 contextmanager 和 with 语句底层原理? 实现了 __enter__ 和 __exit__ 的对象;@contextmanager 装饰器把生成器转为上下文管理器。

  9. Python 中 pickle 和 json 的区别?安全性? pickle 可序列化任意 Python 对象(包括函数、类),但不安全(反序列化可执行代码);json 只支持基本类型,跨语言、安全。

  10. Python 中 __mro__、__bases__、__subclasses__() 分别是什么? __mro__ 方法解析顺序元组;__bases__ 直接基类元组;__subclasses__() 当前类的直接子类列表。

  11. Python 中内存泄漏的常见原因?如何排查? 循环引用 + 未清理全局变量/缓存;大对象未释放;线程/协程泄漏。 工具:objgraph、heapy、tracemalloc、gc.get_objects()

  12. Python 中多进程 vs 多线程 vs 多协程适用场景? CPU 密集 → 多进程(multiprocessing);IO 密集 → 多线程/协程(asyncio);混合 → ProcessPoolExecutor + asyncio。

  13. Python 中如何实现异步 IO?常见库? asyncio + aiohttp + aiomysql 等;或 trio/curio。

  14. Python 中常见的 WSGI/ASGI 服务器有哪些? WSGI:gunicorn + uvicorn;ASGI:uvicorn、hypercorn、daphne。

  15. Python 中装饰器带参数怎么写? 三层嵌套,最外层接收参数,返回真正的装饰器函数。

36–50 高级 & 底层/性能/设计向
  1. Python 中整数对象在内存中如何存储?大整数如何处理? 小整数缓存池;大整数用 ob_digit 数组(30 位一组)实现任意精度。

  2. Python 中字符串 intern 机制? 编译时常量字符串、部分运行时字符串会 intern(放入 interned 池),相同内容指向同一对象。

  3. Python 中 dict 底层实现?为什么 Python 3.7+ dict 有序? 3.6 前 hash table + 开放寻址;3.7+ 插入顺序维护(compact dict + indices 数组)。

  4. Python 中 set 和 dict 的底层数据结构? 都是哈希表,set 是 dict 的 value 为 dummy 的特例。

  5. Python 中列表 append 操作的时间复杂度?扩容策略? 均摊 O(1);扩容策略:2 倍或 1.125 倍(Python 3.3+ 更平滑)。

  6. Python 中如何实现一个高性能的 LRU Cache? collections.OrderedDict + move_to_end();或 functools.lru_cache(maxsize=128)

  7. Python 中如何避免循环导入(circular import)? 延迟导入(函数内 import);重构模块;使用 importlib.import_module

  8. Python 中常见的 monkey patch 使用场景? 测试 mock、热修复线上 bug、临时修改第三方库行为。

  9. Python 中如何实现一个线程安全的单例? 加锁(threading.Lock) + 双检锁;或用模块导入天然单例。

  10. Python 中垃圾回收的阈值机制(generation)? 三代:0 代(频繁)、1 代、2 代;阈值可通过 gc.set_threshold() 调整。

  11. Python 中如何调试内存泄漏? tracemalloc + snapshot;objgraph.show_most_common_types();memory_profiler

  12. Python 中 Cython、Numba、PyPy 的区别和适用场景? Cython → 静态编译到 C;Numba → JIT 编译数值计算;PyPy → 解释器带 JIT,全局提速。

  13. Python 中如何实现一个简单的协程调度器? 用生成器 + yield + send;或直接用 asyncio 的 event loop。

  14. Python 中常见的反序列化漏洞(pickle RCE)如何防范? 永远不要 pickle untrusted data;用 json/yaml/toml;或限制 pickle 的允许类。

  15. 如果让你设计 Python 的包管理工具(pip 的竞品),你会怎么考虑? 依赖解析(SAT solver)、锁文件(requirements.txt → poetry.lock)、环境隔离(venv)、缓存、增量安装、跨平台一致性、支持 git/monorepo 等。

目录

  1. 1–20 基础 & 必知必会
  2. 21–35 中高级 & 原理向
  3. 36–50 高级 & 底层/性能/设计向
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • Stable Diffusion 像素人物帧动画制作指南(含 AnimeEffects 教程)
  • Ubuntu 20.04 服务器搭建 k3s 轻量级 Kubernetes 集群及微服务部署指南
  • Windows 环境 Git 安装与配置指南
  • 前端地图开发基础:服务类型、坐标系与 SDK 选型
  • Windows 下编译支持 CUDA 加速的 Open3D C++ 版本实战
  • Llama3-8B 实测对比:逻辑推理与编码能力评估
  • Kimi Code 上手:终端与 IDE 里的 AI 编程助手
  • 分布式光纤声波传感(DAS)在无人机入侵探测中的应用
  • 基于 Qwen3-VL-WEBUI 的数字人构建与部署实战
  • Windows 平台 ComfyUI 环境配置与 Python/CUDA 排错指南
  • SwiftTerm 跨平台终端模拟器开发指南
  • 企业大模型微调项目落地的关键岗位角色与职责
  • DeepSeek 本地部署私人知识库:无视配置实现私有化检索增强
  • OpenClaw ACP 协议解析:让 IDE 直接驱动 AI Agent
  • DeepSeek-R1-Distill-Qwen-1.5B 部署指南:vLLM+Open WebUI 低显存方案
  • 前端拖拽交互实战:告别原生 API 的卡顿体验
  • ClawdBot (OpenClaw) Discord 机器人部署指南
  • 本地离线部署 AI 大模型:Ollama + OpenClaw + Qwen3.5 实战指南
  • AI 写作辅助平台评测:炼字工坊与蛙蛙写作深度解析
  • 通义万相 2.1:基于 C++ 的高效 AI 视频生成实践

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online