我是新來的蟒蛇。這是我的問題的一個基本例子。如何從一個定義函數內重新分配一個變量的值?
spam='spam'
def change():
spam='eggs'
change()
print(spam)
此代碼將打印「垃圾郵件」到控制檯。有沒有辦法使這個工作不使用返回或參數。謝謝。
我是新來的蟒蛇。這是我的問題的一個基本例子。如何從一個定義函數內重新分配一個變量的值?
spam='spam'
def change():
spam='eggs'
change()
print(spam)
此代碼將打印「垃圾郵件」到控制檯。有沒有辦法使這個工作不使用返回或參數。謝謝。
添加global spam
您def
內爲目標的方法定義之外定義的變量,或更好的,從方法的結果分配一個新值:
spam = "spam"
def change(): return 'eggs'
spam = change() #spam now contains 'eggs'
但是,如果你通過列表或字典,修改方法內部的價值也會影響外部價值,但這是一個不同的故事。如果你想嘗試一下,使用spam=["spam"]
和方法內做spam[0] = 'eggs'
。對於這種情況,在方法之外不需要全局或分配。
當但這是不好的,你應該說,這(和它的最經常可能離不開它) –
不幸的是,我已經更改了多個變量,這並沒有爲我工作,我需要他們來自世界各地的訪問。 –
,你可以做到以下幾點:
spam='spam'
def change():
global spam
spam='eggs'
change()
print(spam)
放'在函數全球spam',不過注意這並不總是好的做法 –
我只想重申Chris_Rands警告:這種方法通常不是最好的方法。它會使你的代碼很難理解和難以維護。 –
在你的函數中的變量應該留在你的函數。而反過來也是成立的,你應該總是儘量不使用全局變量(如果你的函數需要的東西,也經常是你不使用全局變量的方式) –