设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
楼主: crossin先生
打印 上一主题 下一主题

【Python 第50课】 面向对象(4)

[复制链接]

0

主题

0

好友

10

积分

新手上路

Rank: 1

楼主
发表于 2018-4-6 20:11:53 |显示全部楼层
class A:
    def __init__(self,a,b):
        self.a=int(a)
        self.b=int(b)
    def add(self):
        print self.a+self.b


class B(A):
    A.__init__(self,a,b)
    def sub(self):
        print self.a-self.b
count= B('4',5)
count.add()

继承那部分我自己写了个例子想试试,意图是 B继承A的add方法,同时也新建一个方法,然后在B类里调A的add方法, 参数a,b是一样的从A里继承过来  可是我这样会报错Traceback (most recent call last):
  File "C:/Python27/5.py", line 9, in <module>
    class B(A):
  File "C:/Python27/5.py", line 10, in B
    A.__init__(self,a,b)
NameError: name 'self' is not defined
>>>

求解什么问题?
回复

使用道具 举报

0

主题

0

好友

10

积分

新手上路

Rank: 1

沙发
发表于 2018-4-7 16:24:49 |显示全部楼层
crossin先生 发表于 2018-4-7 13:22
__init__ 不是手动调用的。就算调用,也不用加self。
看看课程里的例子

好像有点明白了,我把顺序换了一下就可以了 但是我不太确定是不是我想的那种意思  谢谢老师了!
class A(object):
    def __init__(self,a,b):
        self.a=int(a)
        self.b=int(b)
    def add(self):
        print self.a+self.b


class B(A):
    def sub(a,b):
        A.__init__(self,a,b)   
        print self.a-self.b
count= B('4',5)
count.add()
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-5-3 12:42 , Processed in 0.029146 second(s), 22 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部