|
#!user/bin/python
# -*- coding: UTF-8 -*-
class point:
def __init__(self,x,y):
self.x = x
self.y = y
def __add__(self,oth):#构造加法函数
return point(self.x + oth.x,self.y + oth.y)
def info(self):
print(self.x,self.y)
class D3point(point):
def __init__(self,x,y,z):
self.x = x
self.y = y #两条语句=super().__init__(x,y)
self.z = z
def __add__(self,oth):
return D3point(self.x + oth.x, self.y + oth.y, self.z + oth.z)
def info(self):
print(self.x,self.y,self.z)
def myadd(a,b):
return a + b
if __name__ == '__main__':
P1 = point(1,2)
P2 = point(3,4)
myadd(P1.info(),P2.info())
P4 = D3point(1,2,3)
P5 = D3point(4,5,6)
myadd(P4.info(),P5.info())
输出结果:
1 2
3 4
Traceback (most recent call last):
File "D:/SW/Python/program-defined/57_DuckType.py", line 28, in <module>
myadd(P1.info(),P2.info())
File "D:/SW/Python/program-defined/57_DuckType.py", line 23, in myadd
return a + b
TypeError: unsupported operand type(s) for +: 'NoneType' and 'NoneType'
求助,这里myadd()函数没有起作用,疑问如下:
1. main函数里myadd的传入参数为(1,2)和(3,4),但是定义的是(a,b),所以导致输入出错,对吗?
2.point函数中构造加法函数时,定义的oth是什么意思?
谢谢大家
|
|