探討 :: 可變與不可變資料型態和傳值與傳址
- int 型態是不可變的 (immutable)
- tuple 型態是不可變的
- list 型態是可變的 (mutable)
- 完整的參考清單 https://docs.python.org/3.5/reference/datamodel.html
x = []
y = x
y.append(1)
len(x) # 1 , 因為 list 是可變的
def func(x):
x.append(1)
x = []
func(x)
len(x) # 1 , 因為是傳址加上 list 是可變的
x = []
y = x
y += [1]
len(x) # 1 , 因為 list 是可變的
x = ()
y = x
y += (1,)
len(x) # 0 , 因為 tuple 是不可變的
x = 1
y = x
y += 1
x # 1 , 因為 int 是不可變的