以下代碼
def myfunc():
x = ""
print("Python is " x)
def hi():
global x
x = "OMG"
hi()
print("Python is " x)
myfunc()
只列印兩次“Python is”。我期待第二個列印陳述句列印“Python is OMG”。
有人知道如何做到這一點嗎?我可以將 x 宣告為全域變數,但我想避免它,因為我的編程任務的一個約束是只更改 myfunc-Function 內的代碼。
uj5u.com熱心網友回復:
“全球化”的拼寫nonlocal:)
x里面要修改的hi不是全域變數,而是封閉作用域內的區域變數,所以使用nonlocal關鍵字來指定與該變數x最近的封閉作用域內命名的變數。
def hi():
nonlocal x
x = "OMG"
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/494930.html
上一篇:模型選擇只回傳攔截模型
下一篇:Python區域變數到全域變數
