Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么要在python中再次打印析构函数id消息?_Python - Fatal编程技术网

为什么要在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