# locals 和 globals
# locals 获取当前作用域的所有变量
'''
locals 如果在函数的外面,获取locals()返回值打印之前, 所有的内容.
locals 如果在函数的里面,获取locals调用之前,所有的内容
'''
'''
# 获取打印返回值之前的所有内容
a = 10
b = 20
res = locals()
c=20
print(res)
d=30
'''
'''
# 获取locals调用之前的所有的内容
def func():
f1 = 11
f2 = 12
res = locals()
f3 = 13
print(res)
func()
'''
'''
{'__name__': '__main__',
'__doc__': None, '__package__': None,
'__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x000001F1C552A278>,
'__spec__': None, '__annotations__': {},
'__builtins__': <module 'builtins' (built-in)>, '__file__': 'D:/深圳5期/day10/1.py', '__cached__': None,
'a': 10,
'b': 20, 'res': {...}
}
'''
# globals 只获取全局变量(无论在函数内外都只获取全局变量)
'''
globals 如果在函数的外面,获取globals()返回值打印之前, 所有的内容.
globals 如果在函数的里面,获取globals调用之前,所有的内容
'''
#(1)
'''
a = 5
b =15
res = globals()
c = 26
print(res)
d = 27
'''
#(2)
'''
z1 = 5
z2 = 6
def func():
f1 = 1
f2 = 2
f3 = 3
res = globals()
f4 = 6
print(res)
z4 = 8
func() #res = globals()
z3 = 7
'''
# globals 动态创建全局变量
'''globals 返回的是系统的 全局命名空间的字典 ,在空间里面放的全局变量'''
'''
dic = globals()
print(dic,type(dic))
dic['wangwen'] = 188
print(wangwen)
'''
# globals 可以批量创建全局变量
def func():
res = globals()
# res['a1'] = 1
# res['a2'] = 2
for i in range(5):
# print(i)
res["a%d" % (i) ] = i
'''
"a%d" % (i) # 字符串的格式化
res['a0'] = 0
res['a1'] = 1
res['a2'] = 2
res['a3'] = 3
res['a4'] = 4
'''
func()
print(a0)
print(a1)
print(a2)
print(a3)
print(a4)
# locals 更多的用于获取一些变量 , globals更多的用于修改一些变量