简介:本文系统梳理Python面试中100个高频考点,涵盖基础语法、数据结构、算法设计、并发编程、Web开发等核心模块,结合代码示例与典型场景解析,帮助开发者高效备战技术面试。
可变与不可变对象
a = [1,2]; b = a; b.append(3) 会同时修改a和b。 hash((1,2))可行而hash([1,2])报错?装饰器实现原理
def log_time(func):def wrapper(*args, **kwargs):start = time.time()res = func(*args, **kwargs)print(f"耗时: {time.time()-start:.2f}s")return resreturn wrapper
生成器与迭代器区别
yield实现惰性计算,迭代器需实现__iter__()和__next__()。 GIL全局解释器锁
multiprocessing)或异步编程(asyncio)。深拷贝与浅拷贝
copy.copy()创建浅拷贝,copy.deepcopy()递归复制所有对象。 字典键必须可哈希
__hash__()方法。 {frozenset([1,2]): "value"}合法,{[1,2]: "value"}报错。列表推导式性能优化
[x*2 for x in range(1000)]比循环快30%。 排序算法稳定性
sorted()稳定排序,list.sort()原地排序。 key=lambda x: x[1]按元组第二元素排序。堆队列(Heapq)应用
heapq.heappush(heap, item),heapq.heappop(heap)。 二分查找实现要点
left <= right,更新指针:mid = left + (right-left)//2。 协程与异步IO
async/await语法:async def fetch(): await http.get()。 asyncio.run(main())。 多进程通信
Queue与Pipe对比:前者多生产者多消费者,后者点对点。 multiprocessing.Value和Array。上下文管理器实现
__enter__()和__exit__()方法:文件操作、数据库连接自动释放。 @contextlib.contextmanager装饰器简化实现。元类(Metaclass)应用
type('ClassName', (), {})动态生成类。 描述符协议
__get__()、__set__()、__delete__():属性访问控制。 @property装饰器底层实现。Django中间件执行顺序
process_request() → process_view()。 process_response()反向执行。 MIDDLEWARE列表调整顺序。Flask信号机制
request_started、request_finished。 from blinker import signal实现事件驱动。WSGI协议规范
__call__(environ, start_response)方法。 PATH_INFO与QUERY_STRING解析。ORM查询优化
select_related()(一对一)与prefetch_related()(多对多)。 db_index=True在模型字段中设置。RESTful API设计原则
/users而非/user)。 GET检索、POST创建、PUT替换、PATCH部分更新。CAP理论取舍
分布式锁实现
SETNX命令 + 过期时间。 限流算法对比
消息队列选型
微服务通信模式
通过系统掌握这100个考点,开发者可覆盖90%以上的Python技术面试问题。建议结合《Python Cookbook》和《Fluent Python》深化理解,同时关注Python官方文档的最新特性更新。