我最近了解了 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中可能吗?