在Python中我們經常會遇到一個問題就是明明對一個list進行了重新的賦值運算可是最終原來的list還是發生了改變。
例如:
a = [1,2,3]
b = a
b[0] = 4
print(b)
print(a)
結果爲
[4, 2, 3]
[4, 2, 3]
若改爲
a = [1,2,3]b = list(a)
b[0] = 4
print(b)
print(a)
[1, 2, 3]
在Python中我們經常會遇到一個問題就是明明對一個list進行了重新的賦值運算可是最終原來的list還是發生了改變。
例如:
a = [1,2,3]
b = a
b[0] = 4
print(b)
print(a)
結果爲
[4, 2, 3]
[4, 2, 3]
若改爲
a = [1,2,3]class MetaCls(type): def __new__(cls, *args, **kwargs): print("in MetaCls") # return super(Meta