我目前有这类课程:
class Continent:
def __init__(self, name=None, countries=[]):
self.name = name
self.countries = countries
continent = Continent('Europe')
continent.countries.append('France')
continent.countries.append('Spain')
continent.countries.append('Belgium')
continent = Continent('America')
print(continent.countries)
我希望结果是一个空列表,但是,它是具有前一个实例的三行的列表。似乎这是预期的行为,因为创建新实例并不能真正重置属性,而默认参数仅应用于首次创建。
但是,我应该如何清除该列表,因为如果可能的话,我仍然希望保留可选参数?我尝试在构造函数中添加此方法,但这无济于事。
def __init__(self, name=None, countries=[]):
self.reset()
self.name = name
self.countries = countries
def reset(self):
self.countries = []