__del__函数在不调用时打印出代码

时间:2019-06-15 18:48:38

标签: python python-3.x python-2.7 python-2.x

我正在创建两个类对象,我希望我的__del__(用于删除类对象)在调用delete函数后就打印出一个字符串。

在定义__del__函数时,我尝试返回该字符串,并尝试打印该字符串。当我使用return时,它将删除对象,但不会返回我已有的字符串。当我使用print时,即使我不调用delete函数,它也会自动打印出字符串(“ item Deleted”),该字符串将被打印出来,但不会删除任何对象,因为我从未调用过delete函数。

class Student:
    def __init__(self , name , age , grade):
        print("Student created")
        self.name = name
        self. age = age
        self.grade = grade

    def speak(self):
        return "my name is ", self.name , " and i am " , self.age , " years old"


    def __str__(self):
        return f"my name is {self.name} and i am {self.age} years old"

    def __len__(self):
        return self.grade

    def __del__(self):
        print ("An object has been deleted")



stu1 = Student("Yanda",17,10)





print(len(stu1))

它将打印出10,并且即使我没有调用它也会打印“对象已被删除”。

我希望它仅在调用函数后才将其打印出来。 例如。 del(stu1)

0 个答案:

没有答案