Python globals() 使用方法及示例

由网友 大卫 发布 阅读 4

Python globals() 使用方法及示例

Python 内置函数

globals()方法会以字典类型返回当前位置的全部全局变量。

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

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

符号表主要有两种。

  1. 本地符号表

  2. 全局符号表

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

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

同样,全局(Global)符号表存储了与程序的全局范围有关的所有信息,并在Python中使用globals()方法进行访问。

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

推荐阅读: Python的命名空间和作用域

globals()的语法

globals表字典是当前模块的字典(在函数内部,这是定义它的模块,而不是调用它的模块)。

globals()方法的语法为:

globals()

globals()参数

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

globals()返回值

globals()方法返回全局变量的字典。

示例1:globals()方法在Python中如何工作?

globals()

运行该程序时,输出为:

{'In': ['', 'globals()'],
 'Out': {},
 '_': '',
 '__': '',
 '___': '',
 '__builtin__': <module 'builtins' (built-in)>,
 '__builtins__': <module 'builtins' (built-in)>,
 '__name__': '__main__',
 '_dh': ['/home/repl'],
 '_i': '',
 '_i1': 'globals()',
 '_ih': ['', 'globals()'],
 '_ii': '',
 '_iii': '',
 '_oh': {},
 '_sh': <module 'IPython.core.shadowns' from '/usr/local/lib/python3.5/dist-packages/IPython/core/shadowns.py'>,
 'exit': <IPython.core.autocall.ExitAutocall at 0x7fbc60ca6c50>,
 'get_ipython': <bound method InteractiveShell.get_ipython of <IPython.core.interactiveshell.InteractiveShell object at 0x7fbc6478ee48>>,
 'quit': <IPython.core.autocall.ExitAutocall at 0x7fbc60ca6c50>}

输出显示当前程序的所有全局变量和其他符号。

示例2:使用global()修改全局变量

age = 23

globals()['age'] = 25
print('年龄是:', age)

运行该程序时,输出为:

年龄是: 25

这里,由于全局符号表还存储所有全局变量,即在本示例中为age,所以可以使用globals()函数更改age的值。

使用变量age的键访问返回的字典,并将其修改为25。

这将再次反映到全局符号表中。

Python 内置函数

Python hash() Python getattr()