Qualcuno potrebbe spiegare se è sicuro per reinizializzare un oggetto chiamando "auto. init ("., Come mostrato nel seguente esempio semplificato?reinizializzare un oggetto con self .__ init __ (...)
Il La ragione che sto chiedendo è che non sono riuscito a trovare questo metodo né in diversi libri di Python né in Internet.Vi sono alcuni che suggeriscono di elencare tutti gli attributi e impostarli al valore iniziale uno per uno. Fondamentalmente voglio impostare il mio oggetto su stato iniziale dopo aver terminato alcune attività
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
Perché non è possibile farlo nella funzione 'reset' stessa, dopo aver passato di nuovo i valori iniziali? 'self.name' e' self.author' accedono al valore corrente, non a quello iniziale. –
self.name e self.author non verranno modificati, in questo esempio possono essere ignorati. La mia domanda riguarda self .__ init__ part. Non ho capito bene la tua domanda. Che cosa vuoi dire con questo"? –