python函数作用域的练习
时间: 2024-12-25 17:18:33 浏览: 6
在Python中,函数作用域是指变量在其定义范围内可见性和生命周期。主要有三种作用域:
1. **局部作用域**(Local Scope):当函数内部定义的变量只在这个函数内部可用。一旦函数执行完毕,这些变量就会被垃圾回收机制自动清理。
```python
def local_scope_example():
x = 5 # 局部变量
print(x) # 可见
local_scope_example() # 输出 5
print(x) # NameError: name 'x' is not defined
```
2. **全局作用域**(Global Scope):如果在函数外定义的变量,则在整个程序中有效,除非在函数内有`global`关键字明确地声明该变量为全局。
```python
x = 10 # 全局变量
def global_example():
global x # 声明x为全局
x = 20
print(x)
global_example() # 输出 20
print(x) # 输出 20
```
3. **嵌套作用域**(Enclosing Scope):在函数内的函数访问外部函数的变量是通过关键字`nonlocal`,表示非本地作用域。这允许在内部函数修改外部函数的变量。
```python
def outer_func():
y = 30
def inner_func():
nonlocal y
y += 10
print(y)
inner_func()
outer_func() # 输出 40
```
阅读全文