Pythonでは、「__」で二重に上書きされるすべてのメソッドは「マジックメソッド」と呼ばれます
マジックメソッドPythonインタープリターは自動的にデフォルトを提供するため、内部関数を変更する必要がない限り、デフォルトのマジックメソッドを使用することもあります。
最も一般的に使用される3つ: "_ * init"、 "_ new *"、 "_ * del * _"
_* newは、クラスを作成してこのクラスのインスタンスを返すために使用されます。** _init は、パラメーターを渡してインスタンスを初期化し、サンプルプロパティを初期化します。* new *は「コンストラクター」を形成します。
_ del * _は、デストラクタであるインスタンス化されたオブジェクトを破棄します
クラスコール:コール
_* call * _を使用すると、クラスを関数のように呼び出すことができます
属性アクセス:getattr、setattr、delattr
_* このメソッドは、getattrがオブジェクトの存在しない属性にアクセスして、アクセス動作を定義するときに呼び出されます** _setattr は、オブジェクト属性が設定されるときに呼び出されます
_ オブジェクト属性を削除するときに呼び出されるdelattr * _
コンテキストマネージャー:_ * enterおよび_exit *
これら2つの方法については、上記の質問3を参照してください。
イテレーターメソッド:_ * iter * _および \ __ next__
* iter :コンテナイテレータを返します。多くの場合、特に組み込みのiter()メソッドが呼び出されたとき、およびcontainer:loopでfor xを使用したときに、イテレータを返します。イテレーターはそれ自体のオブジェクトであり、自己を返すイターメソッドを定義する必要があります。
_ next_ *:イテレーターの次の要素を返します
Recommended Posts