探索globals()、locals() 和vars() 的細微差別
Python 提供了三個內省函數,可以深入了解目前命名空間:globals()、locals() 和vars()。每個都傳回一個包含特定資訊的字典。
globals()
globals() 總是傳回目前模組名稱空間的字典。它提供對模組內所有全域定義名稱的存取。
locals()
locals() 是動態的,其行為取決於範圍。
例如,在函數中:
def example(): x = 1 l = locals() l['x'] = 3 print(x) # Outputs 1, not 3
例如:
class Test: a = 'one' huh = locals() b = 'two' huh['c'] = 'three' print(huh) # Outputs {'a': 'one', 'b': 'two', 'c': 'three', 'huh': {...}}
vars()
vars() 接受一個物件作為其參數並傳回其vars() 接受一個物件作為其參數並傳回其 dict 屬性。通常,物件的
dictclass Test: a = 'one' b = 'two' huh = vars(self) c = 'three' huh['d'] = 'four'儲存其屬性資料。因此,向 vars() 提供物件可以存取其屬性。
在此範例中,vars(self) 傳回 Test 實例的
dict 屬性,允許存取它的屬性如「a」、「b」和「c」。以上是Python 中的 globals()、locals() 和 vars() 有什麼不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!