Python locals() 函式



**Python locals() 函式** 是一個 內建函式,它返回一個字典,表示當前的本地符號表。它提供了訪問所有本地變數、函式及其對應值的途徑。請注意,符號表是由 Python 編譯器在執行給定程式碼之前建立的。

在 Python 中,每個程式都有一個符號表,其中包含有關程式中定義的名稱(變數函式、類等)的資訊。符號表由一個 字典 表示,其中名稱是鍵,關聯的值表示其當前值或引用。

語法

以下是 Python **locals()** 函式的語法:

locals()

引數

Python **locals()** 函式不接受任何引數。

返回值

Python **locals()** 函式返回一個字典,表示本地符號表。

locals() 函式示例

練習以下示例以瞭解如何在 Python 中使用 **locals()** 函式。

示例:locals() 函式的使用

locals() 函式可用於跟蹤給定函式中的區域性變數。下面的程式碼將顯示當前作用域中的所有區域性變數。

def localFun():
   localVar1 = 112
   localVar2 = "TutorialsPoint"
   print(locals())

print("The local attributes of the given functions are:")
localFun()

以下是上述程式碼的輸出:

The local attributes of the given functions are:
{'localVar1': 112, 'localVar2': 'TutorialsPoint'}

示例:使用 locals() 函式更改變數的值

對 locals() 函式返回的字典所做的更改將被忽略,這意味著它們不會影響區域性變數的值。這就是為什麼當我們對區域性變數進行修改時,它不會影響區域性變數。在這個例子中,我們可以看到修改前後的影響。

def localFun():
   localVar = 56
   print("Before modifying:", localVar)
   locals()["localVar"] = 26
   print("After modifying:", localVar)

localFun()

上述程式碼的輸出如下:

Before modifying: 56
After modifying: 56

示例:locals() 函式在區域性變數和例項變數中的使用

以下程式碼演示瞭如何在類函式中使用 locals() 函式檢視區域性變數和例項變數的工作方式。此程式碼將返回一個字典,其中 "self" 作為鍵,指向給定類的例項。

class LocalClass:
   def localMethod(self):
       self.localVar = 100
       print(locals())

obj = LocalClass()
obj.localMethod()

以下是上述程式碼的輸出:

{'self': <__main__.LocalClass object at 0x7b1718cc2fd0>}

示例:locals() 函式在 Lambda 表示式中的使用

我們也可以將 locals() 函式與 lambda 表示式一起使用。這裡,我們建立了一個 lambda 表示式,它返回其區域性變數。

localLambda = lambda loclaVar: locals()
print(localLambda(52))

上述程式執行後,將顯示以下輸出:

{'loclaVar': 52}
python_built_in_functions.htm
廣告