![](/img/trans.png)
[英]python: how can I pass a variable to a function with only the string name
[英](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.