當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python globals()用法及代碼示例


globals() 方法返回當前全局符號表的字典。

符號表是由編譯器維護的數據結構,其中包含有關程序的所有必要信息。

這些包括變量名、方法、類等。

符號表主要有兩種。

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

當地的符號表存儲與程序本地範圍相關的所有信息,並在 Python 中使用locals方法。

本地範圍可以在函數內、類內等。

同樣,一個全局的符號表存儲與程序全局範圍相關的所有信息,在 Python 中使用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('The age is:', age)

輸出

The age is: 25

這裏,由於全局符號表還存儲了所有全局變量,即在這種情況下為 age ,因此可以使用 globals() 函數更改 age 的值。

使用變量age 的鍵訪問返回的字典並修改為 25。

這再次反映在全局符號表中。

相關用法


注:本文由純淨天空篩選整理自 Python globals()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。