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

那个print s.skill()怎么理解,skill不是在BasketballMixin中定义的吗?s是BStudent的实例吧,怎么BStudent也有这个方法?skill究竟算不算属性?

class Person(object):
   pass

class Student(Person):
   pass

class Teacher(Person):
   pass

class SkillMixin(object):
   pass

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

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

class BStudent(Student, BasketballMixin):
   pass

class FTeacher(Teacher, FootballMixin):
   pass

s = BStudent()
print s.skill()

正在回答

1 回答

这就是多重继承呀

class BStudent(Student, BasketballMixin):表示既继承Student,又继承BasketballMixin,所以后者的方法也可以继承

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

慕粉3367702 提问者

我懂了,非常感谢,那s.skill()算不算属性啊?
2016-09-08 回复 有任何疑惑可以回复我~
#2

慕粉3466757 回复 慕粉3367702 提问者

是方法吧
2016-09-08 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

那个print s.skill()怎么理解,skill不是在BasketballMixin中定义的吗?s是BStudent的实例吧,怎么BStudent也有这个方法?skill究竟算不算属性?

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