我正在使用python 3.6并想要创建一个Interval类。我正在尝试添加一个可以添加整数和intervall的add方法。到目前为止,我设法生成一个适用于的代码 I =间隔(2,3) c = I + 1#c = [3,4]
然而,相反的剂量工作I =间隔(2,3) c = 1 + I #get错误消息TypeError:不支持的操作数类型+:' int'和'间隔'
我的类和方法的代码如下:
班级间隔:
def __init__(self,start=None,end=None):
if end==None:
end=start
if start==None:
start=end
if start>end:
raise TypeError('left value must be smaller than right value')
self.start=start
self.end=end
def 添加(自我,其他):
if isinstance(other,int):
s2,e2=other,other
s1,e1=self.start,self.end
elif isinstance(self,int):
s1,e1=self,self
s2,e2=other.start,other.end
else:
s2,e2=other.start,other.end
s1,e1=self.start,self.end
return Interval(s1+s2,e1+e2)
如果我尝试在add方法中更改我的elif,如果没有任何效果。有谁知道如何解决这个问题?
谢谢!
答案 0 :(得分:0)
没有尝试运行您的代码,但在我看来,根据http://www.diveintopython3.net/special-method-names.html,您可能希望实施 radd 方法。
第一个工作,因为你要向Interval(I + 1)添加整数并调用Interval类的add方法。但是,在第二种情况下,您正在调用整数类的add方法,它对Interval一无所知。