在 Python 中將字串轉換為變數名

Sahil Bhosale 2023年1月30日
  1. 在 Python 中使用 globals()locals() 將字串轉換為變數名
  2. 在 Python 中使用 exec() 將字串轉換為變數名
在 Python 中將字串轉換為變數名

在 Python 中,可以通過多種方法將字串值轉換為變數的名稱。在本文中,我們將討論實現此目標的各種方法。

有些人可能想這樣做,以便在執行 Python 程式時動態定義變數名。在開發可用於生產環境的軟體時,建議不要使用以下所示的方式將字串轉換為變數名,因為這可能會引起一些問題。是的,可以實現這一點,但是在執行此操作時請務必謹慎。

在 Python 中使用 globals()locals() 將字串轉換為變數名

globals()

Python 中的 globals() 函式返回當前全域性符號表的字典。全域性符號表儲存與程式的全域性範圍有關的所有資訊,可以使用 globals() 函式進行訪問。

user_input = input("Enter string for variable name: \n")
globals()[user_input] = 50
print(apple)
print(type(apple))

輸出:

使用 globals()函式將字串轉換為變數名

我們在這裡要做的第一件事是使用 input() 函式從使用者那裡獲取輸入,並在其中傳遞一個字串 Enter a string for a variable name:。然後,無論使用者輸入什麼值,該值都將儲存在變數 user_input 中。在這裡,我們希望使用者輸入 apple 作為字串值,然後將其儲存在 user_input 中。如果使用者輸入的內容不是 apple,則程式將通過 NameError: name 'variable' is not defined 的錯誤提示。這是因為我們也在列印 apple 的值,然後稍後在我們的程式碼中檢查它的型別。

如果使用者輸入了正確的值,我們可以使用 globals() 修改全域性字典,以修改全域性字典,並將任何值分配給變數 apple。在這裡,我們為變數 apple 分配了 50

locals()

Python 中的 locals() 函式返回當前本地符號表的字典。可以通過 locals() 函式訪問本地符號表。locals() 函式的工作方式幾乎與 globals() 函式相同。唯一的區別是 locals() 可以訪問本地符號表,而 globals() 可以訪問全域性符號表並返回字典。

user_input = input("Enter string for variable name: \n")
locals()[user_input] = 50
print(apple)
print(type(apple))

輸出:

使用 globals()函式將字串轉換為變數名

此程式碼也與 globals() 相同。唯一的區別是我們在這裡使用了 locals() 函式。

在 Python 中使用 exec() 將字串轉換為變數名

完成此操作的另一種方法是在 Python 中使用 exec() 函式。exec() 函式用於動態執行 Python 程式。我們有一個變數名稱,其中儲存了一個字串值 Elon

name = "Elon"
exec("%s = %d" % (name, 100))
print(Elon)

輸出:

100

exec() 函式內部,我們有%s%d 分別用作字串值和十進位制值的佔位符。這意味著我們將在賦值運算子 = 的幫助下為字串賦一個整數值。%s%d 都包含在引號""內。然後我們有一個括號,裡面有 2 個東西,第一個是我們建立的變數,即 name,其中包含值 Elon,第二個是整數 100

在這裡,將代替該變數中的值代替 name 變數。整數 100 將分配給 ElonElon 成為變數名,如果你列印它,將得到 100 作為輸出。

作者: Sahil Bhosale
Sahil Bhosale avatar Sahil Bhosale avatar

Sahil is a full-stack developer who loves to build software. He likes to share his knowledge by writing technical articles and helping clients by working with them as freelance software engineer and technical writer on Upwork.

LinkedIn

相關文章 - Python String

相關文章 - Python Variable