2011年8月31日のブックマーク (1件)

  • [Python][お勉強] Python入門(50) - 演算子のオーバーロード

    演算子が呼ばれると、対応する__XXX__といった前後にアンダースコアがつけられた関数が呼ばれる。また、そういったメソッドを他の通常のメソッドと区別して「フックメソッド」と呼ばれる。 __getitem__ __getitem__はインデクシングの処理に対応する「フックメソッド」。 対象クラスに定義されているか、対象クラスの継承ツリーに定義されていないとコールされない。 以下、__getitem__の例 >>> class C1: ... def __getitem__(self, index): ... return index * 100 ... >>> a = C1() >>> a[0] 0 >>> a[1] 100 >>> a[2] 200 >>> a[3] 300 >>> この__getitem__メソッドはループにも対応可。 >>> for b in a: ... if b >

    juntk
    juntk 2011/08/31
    &演算子はメソッド名__and__に対応してるっぽい