编辑这个页面须要登录或更高权限!

Python locals() 使用方法及示例

Python 内置函数

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

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

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

符号表主要有两种。

  1. 全局符号表

  2. 本地符号表

一个Global 符号表存储与程序的全球范围内的所有信息,并使用Python在访问globals()方法。

全局范围包含所有函数,与任何类或函数都没有关联的变量。

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

局部作用域可以在函数内,类内等。 

推荐阅读: Python的命名空间和范围

locals()的语法

locals()方法的语法为:

locals()

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()字典可能不会更改locals表中的信息。

Python 内置函数

Python 基础教程
Python 流程控制
Python 函数
Python 数据类型
Python 文件操作
Python 对象和类
Python 日期和时间
Python 高级知识
Python 参考手册