如何删除python对象或如何创建具有相同名称的新对象(覆盖旧对象)?

时间:2017-12-07 09:39:24

标签: python

我想删除或覆盖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

0 个答案:

没有答案