__init__()
関数を明示的に呼び出すことは可能ですか? または、クラスのオブジェクトがインスタンス化されると、関数は常に呼び出されますか?
3 に答える
0
Python は非常に寛大な言語であり、実行してはいけないことを実行できることも意味します。したがって、__init__()
はメソッドですが (つまり、他のメソッドと同様に直接呼び出すことができます)、結果はクラスごとに異なります。一部のクラスは ですべての状態を初期化した__init__()
ため、再度呼び出すとクラスが効果的にリセットされます。他のクラスの動作は異なり、クラスが常に何らかの方法で動作するという保証はありません。
通常、この質問は、2 段階の初期化が必要な場合に出てきます (つまり、クラスを作成し、セットアップを行ってから実際に初期化します)。そのための新しいinit()
メソッドを作成します。
a = A()
a.setFoo(foo)
a.init()
同様に、クラスがリセットをサポートしている場合は、reset()
メソッドを追加します。
于 2013-09-02T15:41:15.347 に答える