1. 程式人生 > >python 函式傳參問題

python 函式傳參問題

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 中一切都是物件,嚴格意義我們不能說值傳遞還是引用傳遞,我們應該說傳不可變物件和傳可變物件。