Python 经典面试题与核心知识点详解
本文整理了 Python 面试中的高频考点,涵盖内存管理、迭代器、生成器、装饰器、元类等核心概念,并附带详细解析与代码示例,帮助开发者系统复习。
一、基础语法与对象模型
1. 什么是值传递、引用传递?
在 Python 中,参数传递机制既不是纯粹的值传递,也不是纯粹的引用传递,而是'对象引用传递'(Call by Object Reference)。
- 不可变对象(如字符串
str、元组tuple、数字int/float):当作为参数传递时,行为类似值传递。函数内部修改该变量会创建新对象,不影响外部变量。 - 可变对象(如列表
list、字典dict、集合set):当作为参数传递时,行为类似引用传递。函数内部修改对象内容(如append),会影响外部对象。
# 不可变对象示例
a = 10
def modify_immutable(x):
x = 20
modify_immutable(a)
print(a) # 输出 10
# 可变对象示例
b = [1, 2]
def modify_mutable(lst):
lst.append(3)
modify_mutable(b)
print(b) # 输出 [1, 2, 3]
2. 什么是实参、形参?
- 形式参数(形参):定义函数时,函数名括号内的参数。它们占位,等待调用时传入数据。
- 实际参数(实参):调用函数时,传递给函数的具体值或表达式。
def func(a): # a 是形参
print(a)
x = 10
func(x) # x 是实参
3. 局部变量与全局作用域
a = 1
def fun(a):
a = 2
fun(a)
print(a)


