class A:
def __init__(self,m1,m2):
self.m1 = m1
self.m2 = m2
def __add__(self, other):
''' add takes 2 objects basically objects on RHS and LHS of + say a + b '''
print("Inside add")
s3 = A(self.m1+other.m1,self.m2+other.m2)
return s3
def disp(self):
print('{} {}'.format(self.m1,self.m2))
def __str__(self):
return '{} {}'.format(self.m1,self.m2)
def __add__(self,other):
return self*other
a = 2+5
print(a)
所见输出为:7而expected是10,因为我试图用乘法操作覆盖隐式的add函数。这里发生了什么?运算符重载只适用于pytclass吗?
2条答案
按热度按时间wpx232ag1#
4xrmg8kj2#
您可以在类外部定义一个函数,并将魔术运算符重载属性定义/重定义为该函数
请注意,这对内置类型不起作用。