类不会删除或删除所有内容

时间:2013-06-10 00:41:42

标签: class python-3.x del

我写了类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())

1 个答案:

答案 0 :(得分:1)

根据您的建议,在return函数中放置print而不是__del__会在递减none之前终止它(并使其返回Person.population)。它似乎“删除所有人”的原因是因为你的程序在之后立即结束,所以它们实际上都被删除了。删除它们不是你的功能,它只是在Python退出之前进行清理。