Python基于locals返回作用域字典
英文文档:
locals()
Updateandreturnadictionaryrepresentingthecurrentlocalsymboltable.Freevariablesarereturnedbylocals()whenitiscalledinfunctionblocks,butnotinclassblocks.
返回当前作用域内的局部变量和其值组成的字典
说明:
1.函数功能返回当前作用域内的局部变量和其值组成的字典,与globals函数类似(返回全局变量)
>>>locals()
{'__package__':None,'__loader__':,'__doc__':None,'__name__':'__main__','__builtins__':,'__spec__':None}
>>>a=1
>>>locals()#多了一个key为a值为1的项
{'__package__':None,'__loader__':,'a':1,'__doc__':None,'__name__':'__main__','__builtins__':,'__spec__':None}
2.可用于函数内。
>>>deff():
print('beforedefinea')
print(locals())#作用域内无变量
a=1
print('afterdefinea')
print(locals())#作用域内有一个a变量,值为1
>>>f
>>>f()
beforedefinea
{}
afterdefinea
{'a':1}
3.返回的字典集合不能修改。
>>>deff():
print('beforedefinea')
print(locals())#作用域内无变量
a=1
print('afterdefinea')
print(locals())#作用域内有一个a变量,值为1
b=locals()
print('b["a"]:',b['a'])
b['a']=2#修改b['a']值
print('changelocalsvalue')
print('b["a"]:',b['a'])
print('ais',a)#a的值未变
>>>f()
beforedefinea
{}
afterdefinea
{'a':1}
b["a"]:1
changelocalsvalue
b["a"]:2
ais1
>>>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。