Python 是一種高級編程語言,目前已經成為許多程序員的首選。在 Python 中,我們經常需要獲取某個變量的名稱。
在 Python 中,使用
vars()可以獲取當前作用域中定義的所有變量以及它們的值,但是并不能直接獲取變量的名稱。
為了解決這個問題,我們可以使用
inspect模塊中的
currentframe()和
getframeinfo()函數來實現。
import inspect def get_var_name(var): for fi in reversed(inspect.getouterframes(inspect.currentframe())): names = fi.frame.f_globals.copy() names.update(fi.frame.f_locals) for name, value in names.items(): if value is var: return name # 測試代碼 test_variable = 'hello' print(get_var_name(test_variable)) # 輸出 test_variable
在上面的代碼中,我們定義了一個名為
get_var_name()的函數來獲取變量的名稱。該函數使用了
inspect.getouterframes()函數來獲取當前作用域中的所有棧幀,然后通過遍歷棧幀中的全局變量和局部變量,找到與傳入變量相同的值所對應的變量名稱,并將其返回。
現在,我們可以輕松地獲取變量的名稱,并在我們的代碼中使用這些名稱。