python小白——进阶之路——day9天-———函数locals h和globals

时间:2021-09-01 22:42:19
###locals h和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=15
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(dict,type(dic))
dic["wangwen"]=999
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更多的用于修改一些变量