最近、Python での演算子のオーバーロードについて学びました。次のことが可能かどうかを知りたいです。
次の仮説/考案されたクラスを検討してください。
class My_Num(object):
def __init__(self, val):
self.val = val
def __add__(self, other_num):
if isinstance(other_num, My_Num):
return self.val + other_num.val
else:
return self.val + other_num
上に書かれている方法で、このようなことができることを知っています
n1 = My_Num(1)
n2 = My_Num(2)
n3 = 3
print n1 + n2
print n1 + n3
それらは期待どおりに機能します。また、現在書かれている方法ではこれができないことも知っています
n1 = My_Num(1)
n2 = 2
print 2 + n1
とにかくこのあたりはありますか?この例が不自然であることはわかっていますが、演算子のオーバーロードを行ったときに、演算子を定義するクラスが演算子の右側に表示されると非常に役立つアプリケーションがあります。これはpythonで可能ですか?