我写了类Person,但每当我去使用Del时它都没有做任何事情,如果我把它改成打印它似乎删除了所有的人,而不仅仅是我问的那个人。任何帮助解决这个问题将不胜感激。
class Person:
population = 0
def __init__ (self, name, age):
self.name = name
self.age = age
print ("{0} has been born!".format(self.name))
Person.population += 1
def __str__ (self):
return ("{0} is {1} years young.".format(self.name, self.age))
def __del__ (self):
return ("{0} is dying :)".format(self.name))
Person.population -= 1
def Totalpop ():
print ("There are {0} people here mate.".format(Person.population))
p1 = Person("Crumbs", 39)
p2 = Person("Harry", 89846)
p3 = Person("Amanda", 5)
print (p1)
print (p2)
print (p3)
del (p3)
print (Person.Totalpop())
答案 0 :(得分:1)
根据您的建议,在return
函数中放置print
而不是__del__
会在递减none
之前终止它(并使其返回Person.population
)。它似乎“删除所有人”的原因是因为你的程序在之后立即结束,所以它们实际上都被删除了。删除它们不是你的功能,它只是在Python退出之前进行清理。