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

多重继承的调用

我在最后只运行这一句代码s = BStudent(),把后面几句都屏蔽了,然后给每一个类后面都加了个输出,运行结果发现每一个类都调用了,这样: Person Student Teacher SkillMinxin BasketballMInxin FootballMinxin BStudent FTeacher 大家知道是为什么吗?为什么Teacher和FootBall也调用了?求解释

正在回答

2 回答

再定义类的时候就执行了print,如果你把最后一个也屏蔽#s = BStudent(),也会把上边的定义类时的print执行掉。最后一行s = BStudent(),只是赋值行为,不会执行类,所以不会执行print

2 回复 有任何疑惑可以回复我~
#1

yy_曲水无言戏年月_0 提问者

非常感谢!
2018-03-29 回复 有任何疑惑可以回复我~

class Person(object):
    print 'Person'
    pass

class Student(Person):
    print 'Student'
    pass

class Teacher(Person):
    print 'Teacher'
    pass

class SkillMixin(object):
    print 'SkillMinxin'
    pass

class BasketballMixin(SkillMixin):
    print 'BasketballMInxin'
    def skill(self):
        return 'basketball'

class FootballMixin(SkillMixin):
    print 'FootballMinxin'
    def skill(self):
        return 'football'

class BStudent(Student,BasketballMixin):
    print 'BStudent'
    pass

class FTeacher(Teacher,FootballMixin):
    print 'FTeacher'
    pass

s = BStudent()
#print s.skill()

#t = FTeacher()
#print t.skill()

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

举报

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

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

进入课程

多重继承的调用

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信