それで、intで動作する__mul__
関数を持つカスタムクラスを取得しました。ただし、私のプログラム(ライブラリ)では、逆の方法で呼び出されています。つまり、2 * x
で、x
は私のクラスのものです。これに__mul__
関数を使用させる方法はありますか?
次のコードをクラス定義に追加するだけで問題ありません。
__rmul__ = __mul__
実装__rmul__
同様に。
class Foo(object):
def __mul__(self, other):
print '__mul__'
return other
def __rmul__(self, other):
print '__rmul__'
return other
x = Foo()
2 * x # __rmul__
x * 2 # __mul__