對不起,如果這是一個明顯的問題,但我相對較新的python,現在完全難倒了。我很難讓我的變量在我正在開發的程序中以我想要的方式工作。Python - 與變量的問題
這裏是我迅速作出向人們展示我的問題的例子:
life = 200
def example(dudeHP):
dudeHP = dudeHP - 75
print (dudeHP)
example(life)
print (life) #output is 200, but I want it to be 125
正如你所看到的,我試圖讓全局變量「生命」的價值,DEF例子的代碼塊裏面改變dudeHP(這將是一個局部變量,如果我沒有記錯?)
這是可行的?有沒有更好的方法來完成這一點?或者我做錯了什麼?三江源提前:)
Python不支持按引用調用,只能按值調用。你將'200'的副本*傳遞給'example()',這就是它從'life'中減去'75'所得到的值。 –
@Peter否.Python不會製作那樣的副本。他通過了一個參考文獻,他指出了「dudehp」這個名字的新值(125),而沒有重新指出或改變「生命」或其指向的價值。 – agf
@agf它不會將'dudehp''指向一個新的值,而是指向一個新的**對象**。實際上,AFAI已經理解,標識符「dudehp」綁定到符號表中的一種指針(在Python中,'reference'這個詞是首選的,我不知道爲什麼),並且這種綁定關聯不會不會改變。唯一改變的是與dudehp相關的引用中的值,它是標識符間接指向的對象的地址。然後''dudehp = dudehp-75''觸發這個指針相關的地址變化,但不是符號表中的關聯 – eyquem