這個問題在這里已經有了答案: “最小驚訝”和可變默認引數 (32 個答案) 37 分鐘前關閉。
我有以下 Python 類
class MyClass:
def __init__(self, my_list = []):
self.my_list = my_list
def addItem(self, item):
self.my_list.append(item)
我正在嘗試從該類創建幾個物件。但是,my_list繼續在不同實體之間共享。
例如,使用以下兩個初始化
first_instance = MyClass()
first_instance.addItem("One")
first_instance.addItem("Two")
print(first_instance.my_list)
second_instance = MyClass()
print(second_instance.my_list)
我得到以下輸出
['One', 'Two']
['One', 'Two']
我本來希望second_instance.my_list生成一個空串列。
我錯過了什么?
uj5u.com熱心網友回復:
改成
class MyClass:
def __init__(self, my_list = None):
self.my_list = my_list if my_list is not None else []
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/455036.html
標籤:Python
