Python locals()方法
locals()方法更新并返回当前本地符号表的字典。
符号表是由编译器维护的数据结构,其中包含有关程序的所有必要信息。
这些包括变量名,方法,类等。
符号表主要有两种。
全局符号表局部符号表全局符号表存储了与程序的全局范围有关的所有信息,并在Python中使用globals()方法进行访问。
全局范围包含所有函数,与任何类或函数无关的变量。
同样,局部符号表存储与程序的本地范围有关的所有信息,并使用locals()方法在Python中进行访问。
局部作用域可以在函数内,类之中.
locals()语法
locals()语法为:
locals()
locals()参数
locals()方法不接受任何参数。
从locals()返回值
locals()方法更新并返回与当前本地符号表关联的字典。
示例演示:
示例1:locals()如何在Python中工作?
直接输入
locals()
输出
, '__builtins__':
, '__name__': '__main__', '_dh': ['/home/repl'], '_i': '', '_i1': 'locals()', '_ih': ['', 'locals()'], '_ii': '', '_iii': '', '_oh': {}, '_sh':
注意:全局环境的globals()和locals()符号表是相同的。
示例02
locals()如何在局部变量中实现?
def localsNotPresent():
return locals()
def localsPresent():
present = True
return locals()
print('localsNotPresent:', localsNotPresent())
print('localsPresent:', localsPresent())
输出
localsNotPresent: {}
localsPresent: {'present': True}
示例3:更新locals()字典值
def localsPresent():
present = True
print(present)
locals()['present'] = False;
print(present)
localsPresent()
输出
True
True
与globals()词典(它反映对实际全局表的更改)不同,locals()词典可能不会更改locals表中的信息。
希望这篇文章对你们有用,
欢迎在下方讨论留言,
谢谢关注!