Python 基础教程

Python 流程控制

Python 函数

Python 数据类型

Python 文件操作

Python 对象和类

Python 日期和时间

Python 高级知识

Python 参考手册

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 内置函数