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 inside a class print('\nlocals() value inside class\n', locals())

输出

locals() value inside class
 {'__module__': '__main__', '__qualname__': 'PLocal', 'l': 50}

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

局部符号表存储与程序局部范围(类或方法内部)相关的所有信息。我们可以使用 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() 返回一个表示当前局部符号表的字典,但修改该字典并不会改变函数中局部变量的实际值。

因此,即使我们尝试通过 locals()['present']present 设置为 False,函数内部的实际 present 变量仍然是 True


另请阅读

你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战