python 函式傳參問題
阿新 • • 發佈:2018-12-21
python 函式的引數傳遞:
-
實參為不可變型別:類似 c++ 的值傳遞,如 數字型、字串、元組。如fun(a),傳遞的只是a的值,沒有影響a物件本身。比如在 fun(a)內部修改 a 的值,只是修改另一個複製的物件,不會影響 a 本身。
-
實參為可變型別:類似 c++ 的引用傳遞,如 列表,字典,集合。如 fun(la),則是將 la 的引用傳過去,修改後fun外部的la也會受影響
# 實參為不可變資料型別 def test(s): s = "hi" s = "hello" print(s) test(s) print(s) ## 執行結果: hello hello
# 實參為不可變資料型別
def test(L):
L.append("user02")
L = ["user01"]
print(L)
test(L)
print(L)
## 執行結果:
['user01']
['user01', 'user02']
python 中一切都是物件,嚴格意義我們不能說值傳遞還是引用傳遞,我們應該說傳不可變物件和傳可變物件。