[問題] a+=b VS a = a+b 差異(solved)

作者: znmkhxrw (QQ)   2019-04-04 14:43:08
原本認為 a+=b 跟 a=a+b 是一樣的東西
但是在函數裡配上int或是list就不一樣了...
【整數】
def f(int):
int += 1
def g(int):
int = int + 1
a = 0
f(a)
print(a)
作者: mirror0227 (鏡子)   2019-04-04 14:58:00
是local沒錯 但物件的話存的是指標
作者: TitanEric (泰坦)   2019-04-04 15:00:00
老問題 list跟dict等物件在function是pass by reference 跟 JS一樣
作者: mythnc (迷小心)   2019-04-04 15:10:00
https://stackoverflow.com/a/43785469python是dynamic typing,+=跟=不全然一樣
作者: jiyu520 (不要鯽魚我)   2019-04-04 20:01:00
相關的還有deepcopy應用
作者: BZnoo (Uba)   2019-04-05 22:12:00
後段 list 例中的 def g(int): 應先改成 def g(lst): 吧?

Links booklink

Contact Us: admin [ a t ] ucptt.com