所以我今天在 Python IDLE Shell 中闲逛,我注意到了一些东西。 我有这样的类(class):
class Name:
def __init__(self, name):
self.name = name
def __str__(self):
return self.name
我创建了一个类的实例并打印出名称:
name1 = Name("Cameron")
print(name1)
然后我删除了类:
del Name
但后来意识到我仍然可以像什么都没发生一样使用“name1”:
# still returns 'Cameron'
print(name1)
谁能告诉我为什么会这样?
请您参考如下方法:
del 并不意味着“销毁这个东西”。它的意思是“取消分配这个变量”。对该变量引用的对象的其他引用不受影响,只要该对象可通过某些引用链访问,它就不会被销毁。
当你执行
del Name
Name 变量消失了,但是变量用来引用的 Name 类仍然存在。 name1 具有对其类型的引用,因此它将继续正常工作。
