Python 函数的深入探索:作用域、递归、Lambda、生成器与装饰器
1. 函数作用域
函数作用域是理解函数如何工作以及如何实现代码复用的关键。在 Python 中,函数内部定义的变量具有局部作用域,其生命周期在函数返回时结束。当函数返回时,所有局部变量“超出作用域”,其占用的资源可以被安全回收。函数参数和在函数体中创建的变量都具有局部作用域。
而在函数外部定义的变量相对于当前函数具有全局作用域。只要变量名没有被同名的局部变量覆盖,函数就可以访问和修改这些全局变量。需要注意的是,全局作用域有时也被称为模块作用域,因为这个级别的变量仅在其所在的模块(.py 文件)中是全局的,并非对整个 Python 进程都是全局的。
以下是一个函数作用域的示例代码:
# 全局作用域
a = 6
b = 42
def func(x, y):
# 局部作用域
z = 16
return a * x + b * y + z
# 全局作用域
c = func(1, 5)
在 Python 中,函数是一等对象,这意味着它们具有两个重要特性:
- 可以像其他对象一样动态重命名。
- 函数定义可以嵌套在其他函数体内。
当函数嵌套时,内部函数与外部函数共享作用域,但外部函数不能访问内部函数的作用域。内外函数都可以访问全局变量。例如:
# 全局作用域
a = 6
b = 42
def outer(m, n):
# outer 的作用域
超级会员免费看
订阅专栏 解锁全文
1616

被折叠的 条评论
为什么被折叠?



