回收对象后清除属性

时间:2018-07-26 21:24:58

标签: python object constructor

我目前有这类课程:

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 = []

0 个答案:

没有答案