Может ли кто-нибудь объяснить, можно ли повторно инициализировать объект, вызвав "self. init (". как показано на следующем упрощенном примере?
Причина, по которой я спрашиваю, заключается в том, что я не мог найти этот метод ни в нескольких книгах python, ни в Интернете. Есть некоторые, которые предлагают перечислить все атрибуты и установить их на начальное значение по одному. В принципе, я хочу установить свой объект в начальное состояние после того, как он выполнил некоторые задачи.
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