python learning day13
1328 ワード
キューブメソッドはマジックメソッドとも特殊メソッドとも呼ばれ、とにかく一般的なメソッドではありません.クラスに「魔法」を追加できる特殊な方法です.これらは、init、ltなどの2つの下線で囲まれて命名されることが多い.
構造と初期化のキューブメソッド
実際に
比較に使うキューブの方法
eq(self,other)は等号の挙動を定義し,==である.呼び出し
lt(self,other)は、番号未満の動作を定義し、<.呼び出し
アクセス属性制御
getattr(self, name)
このメソッドは、存在しないプロパティにアクセスしようとしたときの動作を定義します.したがって、この方法を再ロードすると、誤ったスペルをキャプチャしてリダイレクトしたり、廃棄された属性に警告したりすることができます.
setattr(self, name, value)
setattrは、プロパティに値を付けたり変更したりするときの動作を定義します.オブジェクトの属性が存在するかどうかにかかわらず、その属性に値を割り当てることができます.そのため、属性の値をカスタマイズできます.delattr(self, name) __delattr__と_setattr__似ていますが、属性を削除するときの動作を定義しています.実装__delattr__「無限再帰」のエラーも回避します.getattribute(self, name) __getattribute__属性がアクセスされたときの動作を定義し、比較して、_getattr__このアトリビュートが存在しない場合にのみ機能します.したがって、サポート_getattribute__のPythonバージョン、呼び出し_getattr__必ずgetattributeが呼び出されます.getattribute__同様に「無限再帰」のエラーを回避します.注意が必要なのは、実現しないほうがいいということです.getattributeは、このようなやり方はめったに見られないので、バグが発生しやすいです.
構造と初期化のキューブメソッド
実際に
x=class1()
にだまされた時、init__最初に呼び出されたメソッドではありません.new__1番目、__new__ (cls,[...)
最初のパラメータはこのクラスで、他は__に渡されます.init__の.したがって、x=class1()
のとき()のすべてのパラメータは__に与えられる.init __ .対応する_del __解釈器が終了するときに存在するオブジェクトを削除することができるプロファイルの役割を果たすことができる.比較に使うキューブの方法
eq(self,other)は等号の挙動を定義し,==である.呼び出し
x.__ eq __(y)
ne(self,other)は、不等号の動作を定義し、!=である.lt(self,other)は、番号未満の動作を定義し、<.呼び出し
x.__ lt __()
gt(self,other)は,番号以上の挙動を定義し,>=Pythonは実際にはマジックメソッドによってカプセル化することができる.アクセス属性制御
getattr(self, name)
このメソッドは、存在しないプロパティにアクセスしようとしたときの動作を定義します.したがって、この方法を再ロードすると、誤ったスペルをキャプチャしてリダイレクトしたり、廃棄された属性に警告したりすることができます.
setattr(self, name, value)
setattrは、プロパティに値を付けたり変更したりするときの動作を定義します.オブジェクトの属性が存在するかどうかにかかわらず、その属性に値を割り当てることができます.そのため、属性の値をカスタマイズできます.delattr(self, name) __delattr__と_setattr__似ていますが、属性を削除するときの動作を定義しています.実装__delattr__「無限再帰」のエラーも回避します.getattribute(self, name) __getattribute__属性がアクセスされたときの動作を定義し、比較して、_getattr__このアトリビュートが存在しない場合にのみ機能します.したがって、サポート_getattribute__のPythonバージョン、呼び出し_getattr__必ずgetattributeが呼び出されます.getattribute__同様に「無限再帰」のエラーを回避します.注意が必要なのは、実現しないほうがいいということです.getattributeは、このようなやり方はめったに見られないので、バグが発生しやすいです.