私はベクタークラスを持っていて、ベクターに数値を掛けるには__mul__
メソッドを定義しました。Pythonでメソッドエイリアスを定義しますか?
def __mul__(self, other):
x = self.x * other
y = self.y * other
new = Vector()
new.set_pos((x, y))
return new
私の問題は、私は数とベクトルの間でどのであるかわからないということです。ここで
は__mul__
方法です。 selfが数値の場合、self.xはエラーを発生させます。 (私は多分この時点で勘違いしてる?:「その他」は常に数です):私は何ができるPython: multiplication override を:
だから私はここで見つける
__rmul__ = __mul__
が、私はAであることどのように行うことができますクラス定義?
のような何か:
def __rmul__ = __mul__
どちらが呼び出されるかを知る方法はありますか? –
'__mul__'を最初に実行し、失敗した場合は' __rmul__'を実行します。 – katrielalex
better:または「bにそれを乗じて(b)を伝える」。乗算演算子は可換である必要はありません。 – glglgl