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


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()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。