1

私はクラス 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())
4

1 に答える 1

1

あなたが示唆するように、あなたの関数returnの代わりに置くと、それが減少する前にそれを終了します(そしてそれを返します)。「すべての人を削除する」ように見える理由は、プログラムが直後に終了するため、実際にはすべて削除されているためです。それらを削除しているのは関数ではありません。終了する前にPythonがクリーンアップしているだけです。print__del__nonePerson.population

于 2013-06-10T01:37:43.973 に答える