当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python locals()用法及代码示例


locals() 方法更新并返回当前本地符号表的字典。

符号表是由编译器维护的数据结构,其中包含有关程序的所有必要信息。

这些包括变量名、方法、类等。

符号表主要有两种。

  1. 全局符号表
  2. 局部符号表

A 全局的符号表存储与程序全局范围相关的所有信息,在 Python 中使用globals方法。

全局范围包含所有与任何类或函数无关的函数、变量。

同样地,当地的符号表存储与程序本地范围相关的所有信息,并在 Python 中使用locals()方法。

本地范围可以在函数内、类内等。

用法:

用法:

locals()

参数:

locals() 方法不带任何参数。

返回:

locals() 方法更新并返回与当前本地符号表关联的字典。

示例 1:locals() 如何在 Python 中工作?

locals()

输出

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

注意: globals()locals()全局环境的符号表是相同的。

示例 2: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() 字典可能不会更改局部表内的信息。

相关用法


注:本文由纯净天空筛选整理自 Python locals()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。