Python 核心知识点与面试指南
在技术面试中,Python 的基础概念往往决定了候选人的基本功是否扎实。本文汇总了高频考点,涵盖装饰器原理、内存管理、数据结构选择以及版本差异,帮助开发者从底层逻辑理解代码。
一、装饰器:函数的'化妆师'
装饰器本质上是一个接收函数作为参数并返回新函数的工具。它允许我们在不修改原函数代码的前提下,动态添加新功能,比如权限验证或日志记录。
1. 核心原理
Python 中的函数是对象,可以像变量一样传递。装饰器利用闭包机制,通过嵌套函数保留原函数引用,并包裹额外的逻辑。
工作流程:
- 调用被装饰的函数时,实际执行的是装饰器加工后的新函数。
- 新函数先执行装饰逻辑(如检查权限),再调用原函数。
- 最后返回结果。
2. 常见用途
| 场景 | 作用 | 生活类比 |
|---|---|---|
| 权限验证 | 检查用户状态后执行 | 进小区刷卡(门禁系统) |
| 日志记录 | 自动记录调用时间与参数 | 飞机黑匣子 |
| 性能统计 | 计算函数运行耗时 | 跑步计时 |
| 缓存结果 | 避免重复计算 | 备忘录复用答案 |
3. 实现方式
函数式装饰器是最常用的形式,通过嵌套函数实现。
import functools
def remind_call(func):
@functools.wraps(func)
def wrapper():
print("【提醒】开始打电话...")
func()
print("【提醒】通话结束")
return wrapper
@remind_call
def call_friend():
print("正在和好友通话中...")
call_friend()
注意: 直接使用装饰器会导致 help(func) 显示 wrapper 的信息。务必使用 来保留原函数的元数据。

