为什么要在python中再次打印析构函数id消息?
这是我的密码为什么要在python中再次打印析构函数id消息?,python,Python,这是我的密码 class third: def __init__(self): print("Cons is called") def __del__(self): print("desc is called") def setName(self,firstName,lastName): self.firstName=firstName; self.lastName=lastName; def
class third:
def __init__(self):
print("Cons is called")
def __del__(self):
print("desc is called")
def setName(self,firstName,lastName):
self.firstName=firstName;
self.lastName=lastName;
def displayName(self):
print(self.firstName,' ' ,self.lastName)
ob=third();
ob.setName('gaurav','sharma');
ob.displayName()
ob.__del__()
ob.displayName();
输出是
Cons is called
gaurav sharma
desc is called
gaurav sharma
desc is called
我已经使用del销毁了对象,然后再次尝试调用displayname函数,但它仍然提供了已分发的值,现在我不知道该对象是否为destroid。您不应该直接调用
\uu del\uu()
,因为它只会运行该方法,但实际上不会删除该对象。使用del
语句删除对象:
>>> del ob
>>> ob
>>> NameError: name 'ob' is not defined
del
不是函数,所以请不要用括号括起来。@Daniel你说得对,修正了。谢谢您的提醒。@deniel它正在工作。\uu del\uu
与任何其他方法一样,当直接调用时。\uu del\uu()
由每个实例的销毁调用。调用\uu del\uu()
不会破坏对象本身请注意,具有setter和getter不是Pythonic的-使用@property
。