我正在创建两个类对象,我希望我的__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)