簡體   English   中英

(Python)我有一個表示現有全局變量名稱的字符串,並希望將此字符串傳遞給函數

[英](Python) I have a string that represents an existing global variable's name, and would like to pass this to a function

x=1

def hi(y):
    exec("global " + y) 
    exec(y + "+=1")

hi("x")
print(x)

我希望將全局定義的x遞增1,但得到的輸出仍為1。如何糾正此問題?

您可以通過特殊關鍵字訪問全局變量,等待它: globals :)

def hi(var):
    globals()[var] += 1
  • 避免像瘟疫這樣的高管(直到您知道它帶來了什么問題,或者在五年內,以較晚的日期為准)

  • 為了將來的可讀性,單字母變量名是一個禁忌。 (它可能只是一個演示,但我是說...)

  • 查看此鏈接以了解范圍規則 (在后續帖子中提供有關全局變量的良好示例)

希望傳遞'x'人不要將其更改為無效的變量名稱,例如hi(12345)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM