找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 1976|回复: 1

[求助] 为何myadd()函数没有生效?

11

主题

26

帖子

26

积分

贫民

积分
26
jingseyi2011 发表于 2018-1-2 15:24:24 | 显示全部楼层 |阅读模式
#!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是什么意思?
谢谢大家
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表