为了账号安全,请及时绑定邮箱和手机立即绑定

为什么这么写 是错的啊 ?请问改怎么写

class A(object):
   def __init__(self, a):
       print 'init A...'
       self.a = a

class B(A):
   def __init__(self, a ,name):
       A.__init__(self,a)
       self.name = name

       print 'init B...'

class C(A):
   def __init__(self, a,job):
       A.__init__(self,a)
       self.job =job
       print 'init C...'

class D(B,C):
   def __init__(self,name,job ):
       B.__init__(self,a,name)
       C.__init__(self,a,job)
       print 'init D...'
d= D(100,'smith','tec')
print d.name

正在回答

2 回答

# 按你的意思写的,你的 class D 有问题
class A(object):
    def __init__(self,a):
        self.a=a
        print 'init A...'

class B(A):
    def __init__(self,a,b):
        A.__init__(self,a)
        self.b=b
        print 'init B...'

class C(A):
    def __init__(self,a,c):
        A.__init__(self,a)
        self.c=c
        print 'init C...'

class D(B,C):
    def __init__(self,a,b,c): # 你少了个参数
        B.__init__(self,a,b)
        C.__init__(self,a,c)
        print 'init D...'

d= D(100,'smith','tec')
print d.a

# print
#init A...
#init B...
#init A...
#init C...
#init D...
#100


0 回复 有任何疑惑可以回复我~

继承的子类中要用super(x,self).__init__(v1,v2,...)来初始化父类中继承的变量

固定格式,不是随便用的


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
python进阶
  • 参与学习       255533    人
  • 解答问题       3038    个

学习函数式、模块和面向对象编程,掌握Python高级程序设计

进入课程

为什么这么写 是错的啊 ?请问改怎么写

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号