作用域
"""
1.局部作用域:这是在一个函数内部定义的变量;
2.闭包作用域:这是在一个函数外部另一个函数内部定义的变量;
3.全局作用域:在所有函数外定义的变量
4.内建作用域:内部函数定义的
"""
## 举例
```python
a = int(3) # 内建作用域
a = 3 # 全局作用域
def sum_demo(a, b):
a = 1 # 闭包函数外的作用域
def reduce_demo(a, b):
a = 1 # 局部作用域
return a + b
return reduce_demo()
查找
"""
局部作用域(Local)-->闭包函数外的函数中(Enclosing)-->全局作用域(Global)-->内建作用域-->(Built-in)
LEGB
"""
global
'''
全局变量
'''
# a = 0
# def add_demo():
# a +=1
# return a
# add_demo()
'UnboundLocalError: local variable a referenced before assignment'
"未绑定的本地错误,分配前引用的局部变量“a”"
a = 0
def add_demo():
global a
a += 1
return a
add_demo()
nonloca
"这里添加global 试一下"
"""
NameError: name 'count' is not defined
def f():
count = 0
def a():
global count
count += 1
print(count)
return a()
f()
"""
'f() --> a=1'
def f():
count = 0
def a():
nonlocal count
count += 1
print(count)
return a()
f()