目录
globals()和locals()
globals():以字典类型返回当前位置的全部全局变量
locals():以字典类型返回当前位置的全部局部变量
a = 1
print(globals())
def f():
a = 2
print(locals())
f()
'''
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x00000000020E1CF8>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': '文件的位置', '__cached__': None, 'a': 1}
{'a': 2}
'''
易混淆:global和nonlocal
global:声明全局变量
a = 1
def f():
a = 2
print(a)
f()
print(a)
a = 1
def f():
global a
a = 2
print(a)
f()
print(a)
'''
2
1
2
2
'''
nonlocal 只能用于局部变量 影响的是离当前声明nonlocal最近的变量
a = 1
def f():
a = 2
def f1():
a = 3
def f2():
nonlocal a
a += 1
f2()
print('##a##',a)
f1()
print('**a**', a)
f()
print('全局:',a)
'''
##a## 4
**a** 2
全局: 1
'''