誰もがそれを呼び出すことによって、オブジェクトを再初期化しても安全であるかどうかを説明してもらえ「自己を。のinit(」。次簡略化した例のように?は自己を持つオブジェクトを再初期化.__の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
初期値を再度渡さなければならないのに、なぜあなたは 'reset'関数自体でそれを行うことができませんか? 'self.name'と' self.author'は初期値ではなく現在の値にアクセスします。 –
self.nameとself.authorは変更されませんが、この例では無視できます。私の質問はself .__ init__部分についてです。私はあなたの質問をよく理解していませんでした。 "それ"って何を意味しますか? –