python 中变量范围判断
时间: 2024-09-25 21:16:19 浏览: 39
在Python中,变量的作用域是指变量在其定义范围内可以被访问的程度。主要有三种类型的变量范围:
1. **局部作用域**(Local Scope):在函数内部定义的变量属于局部作用域,只在该函数内部有效。一旦函数执行完毕,这些变量就会被自动销毁。
```python
def my_function():
x = 10 # 局部变量
print(x)
my_function() # 输出10
print(x) # NameError: name 'x' is not defined (尝试访问已删除的局部变量)
```
2. **全局作用域**(Global Scope):在函数外部定义的变量,除非明确地在函数内用`global`关键字声明,否则默认是全局变量,可以在整个程序中访问。
```python
x = 5 # 全局变量
def function():
print(x) # 直接访问全局变量
function()
```
3. **嵌套作用域**(Nested Scope):在一个函数内部定义另一个函数时,内部函数可以访问外部函数的局部变量,这种被称为非标准的嵌套作用域,但在Python 3.8及以上版本,可以通过`nonlocal`关键字来显式引用。
```python
def outer():
y = 20
def inner():
nonlocal y
y += 10
print(y)
inner()
outer() # 输出30
```
阅读全文