python使用add進(jìn)行重載加法
本文教程操作環(huán)境:windows7系統(tǒng)、Python3.9.1,DELLG3電腦。
1、先定義一個(gè)類:
classPoint:
def__init__(self,x,y):
self.x=x
self.y=y
>>>a=Point(2,4)
>>>b=Point(3,5)
>>>a+b
Traceback(mostrecentcalllast):
File"/usr/local/python3/lib/python3.6/site-packages/IPython/core/interactiveshell.py",line2862,inrun_code
exec(code_obj,self.user_global_ns,self.user_ns)
File"",line1,in
a+b
TypeError:unsupportedoperandtype(s)for+:'Point'and'Point'
很顯然a和b并不能相加,但是我們可以定義一個(gè)方法讓它們實(shí)現(xiàn)相加。
classPoint:
def__init__(self,x,y):
self.x=x
self.y=y
#定義一個(gè)add方法
defadd(self,other):
returnPoint(self.x+other.x,self.y+other.y)
>>>a=Point(2,4)
>>>b=Point(3,5)
>>>c=a.add(b)
>>>c.x
Out[6]:5
2、通過一個(gè)add方法,我們實(shí)現(xiàn)了它們的相加功能。但是,我們還是習(xí)慣使用加號,事實(shí)上,我們只要改下函數(shù)名就可以使用+進(jìn)行運(yùn)算了。
def__add__(self,other):
returnPoint(self.x+other.x,self.y+other.y)
很顯然+就是調(diào)用類的__add__方法,因?yàn)槲覀冎灰尤脒@個(gè)方法就能夠?qū)崿F(xiàn)加法操作。
以上就是python使用add進(jìn)行重載加法,希望能對大家有所幫助。更多Python學(xué)習(xí)教程請關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。