locals 和 globals

# 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更多的用于修改一些变量

  

猜你喜欢

转载自www.cnblogs.com/huangjiangyong/p/10835755.html