次の簡単な例に示すように、 「self. init (」.を呼び出してオブジェクトを再初期化することが安全かどうかを誰か説明できますか?
私が尋ねている理由は、いくつかのpythonの本でもインターネットでもこの方法を見つけることができなかったからです。すべての属性をリストし、それらを 1 つずつ初期値に設定することを提案する人もいます。基本的に、いくつかのタスクが完了した後、オブジェクトを初期状態に設定したいと考えています。
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