réinitialiser un objet avec self .__ init __ (...)

Quelqu'un pourrait-il expliquer qu'il est sécuritaire de le réinitialiser un objet en appelant "l'auto.init(". comme indiqué dans l'exemple simplifié?

La raison pour laquelle je te demande, c'est que je ne pouvais pas trouver cette méthode ni dans plusieurs python livres ni sur internet. Il y a certains qui suggèrent à la liste de tous les attributs et de les régler à la valeur initiale, un par un. Fondamentalement, je veux mettre mon objet à l'état initial après il a fini de certaines tâches.

class Book(object):
    def __init__(self,name,author):
        self.name = name
        self.author = author
        self.copies = 5

    def reset(self):
        self.__init__(self.name,self.author)

    def incrementCopy(self):
        self.copies += 1

Kite = Book('kite runner','khaled hosseini')

print 'initial number of copies:', Kite.copies
Kite.incrementCopy()
Kite.incrementCopy()
Kite.incrementCopy()
print '3 copies are added:', Kite.copies
Kite.reset()
print 'number of copies are reinitialized', Kite.copies


initial number of copies: 5
3 copies are added: 8
number of copies are reinitialized 5

source d'informationauteur | 2012-10-26