我想删除或覆盖python对象。
首先,这是简单的课程。
>>> def Myclass():
... def __init__(self, name, value=[]):
... self.name = name
... self.value = value
...
然后我创建一个Myclass
的对象,并向value
属性添加内容。
>>> m1 = Myclass('m1')
>>> m1.value.append('a')
>>> m1.value.append('b')
>>> m1.value
['a', 'b']
现在我尝试删除它。
>>> del m1
>>> m1.value ### the variable seem to be properly erased
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'm1' is not defined
似乎被正确删除。我尝试创建一个具有相同名称的新对象(因为我想覆盖旧值)。
>>> m1 = Myclass('m1')
>>> m1.value
['a', 'b'] ### The previous value was not erased!!
似乎python上的del
命令实际上并没有删除变量。我是否需要手动调用垃圾收集器来擦除它?
我正在使用python 3.6.3