initialisieren Sie ein Objekt mit self.__init__(...)

Könnte jemand erklären, ob es sicher ist, initialisieren Sie ein Objekt durch Aufruf von "self.init(". wie das folgende vereinfachte Beispiel?

Den Grund ich Frage ist, dass ich konnte nicht finden, dass diese Methode weder in mehreren python-Büchern noch im internet. Es gibt einige, die vorschlagen, um eine Liste aller Attribute und legen Sie Sie auf den Anfangswert eins nach dem anderen. Im Grunde möchte ich mein Objekt in den ursprünglichen Zustand nach Beendigung einiger Aufgaben.

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
Warum kann man nicht tun, dass in reset Funktion selbst, nachdem Sie haben, um die ursprünglichen Werte wieder? self.name und self.author greift auf den aktuellen Wert, nicht die ersten.
selbst.name und self.Autor nicht geändert werden, Sie können ignoriert werden, in diesem Beispiel. Meine Frage ist über self.__init__ Teil. Ich habe nicht ganz verstanden deine Frage. Was meinst du mit "das"?

InformationsquelleAutor | 2012-10-26

Schreibe einen Kommentar