Python 面试 · 高频快答
一面速过。展开见同目录其它页。
定位
Q:你会 Python 吗?到什么程度?
A:能写脚本和工具:语法、常用库、venv、调 HTTP API;不是专职 Python 后端,复杂业务仍用 Java。
Q:什么时候用 Python 而不是 Java?
A:一次性脚本、数据处理、快速验证、某些 SDK 只有 Python;长期中台、强事务、团队规范用 Java。
基础
Q:list / tuple / dict / set?
A:list 可变序列;tuple 不可变;dict 键值;set 去重与成员判断。
Q:浅拷贝深拷贝?
A:浅拷贝共享内层可变对象;深拷贝用 deepcopy。嵌套结构改之前要想清。
Q:*args **kwargs?
A:可变位置/关键字参数,包装函数、装饰器、转发参数时用。
Q:装饰器?
A:函数包函数,复用日志、计时、重试等横切逻辑。
Q:生成器?
A:yield 惰性产出,省内存,适合大文件逐行处理。
并发
Q:GIL?
A:CPython 同一时刻基本一个线程跑字节码;CPU 密集用多进程;IO 密集线程/asyncio 仍有价值。
Q:多线程一定快吗?
A:不一定。看是 IO 还是 CPU;还要看锁与任务切分。
工程
Q:依赖怎么管理?
A:venv 隔离 + requirements 或 poetry/uv 锁版本;密钥走环境变量。
Q:调接口注意什么?
A:timeout、错误分类、幂等才重试、别把 Key 写进代码。
项目(自备一句)
Q:项目里 Python 干什么?
A:用 项目讲述 填空;没有就说学习脚本 + 计划用在采集/AI 调用。