跳到主要内容

Python locals() 函数

locals() 方法返回一个字典,其中包含当前程序的所有局部变量和符号。

示例

print(locals())

输出

{'In': ['', 'locals()'],
'Out': {},
'_': '',
'__': '',
'___': '',
'__builtin__': ,
'__builtins__': ,
'__name__': '__main__',
'_dh': ['/home/repl'],
'_i': '',
'_i1': 'locals()',
'_ih': ['', 'locals()'],
'_ii': '',
'_iii': '',
'_oh': {},
'_sh': ,
'exit': ,
'get_ipython': >,
'quit': }

locals() 语法

locals() 方法的语法是:

locals()

locals() 参数

locals() 方法没有参数。

locals() 返回值

locals() 方法返回当前局部符号表的字典。

示例 1:Python locals()

class local:
l = 50
# 类中的 locals
print('\n类中的 locals()\n', locals())

输出

类中的 locals()
{'__module__': '__main__', '__qualname__': 'PLocal', 'l': 50}

Python 编译器维护着一个符号表,其中包含有关正在编写的程序的必要信息。Python 中有两种类型的符号表 - 局部(Local)全局(Global)

局部符号表存储与程序的局部作用域(类或方法内)相关的所有信息。我们可以使用 locals() 方法访问这个符号表。

通常,Python 程序员使用 locals() 方法限制方法或类的作用域内的任何变量和方法。

在上面的示例中,我们有一个名为 local 的类。在这里,我们使用了 locals() 方法来返回这个类的变量和方法。

示例 2:使用 locals() 更改值

def localsPresent():
present = True
print(present)
locals()['present'] = False;
print(present)

localsPresent()

输出

True
True

在上面的示例中,我们使用 locals() 方法在函数 localsPresent 内部更改了 present 变量的值。

由于 locals() 返回一个字典,我们使用了字典项的方法,即变量 present,并将其值更改为 False

推荐阅读: