高飞的鱼
2022-03-04 21:57
class Person:
def __init__(self,name,gender):
self.name=name
self.gender=gender
class Student(Person):
def __init__(self,name,gender,score):
super(Student, self).__init__(name,gender)
self.score=score
class Teacher(Person):
def __init__(self,name,gender,subject):
super(Teacher, self).__init__(name, gender)
self.subject=subject
class SkillMixin:
def __init__(self,skill):
self.skill=skill
class BasketballMixin(SkillMixin):
def __init__(self,skill,basketball):
super(BasketballMixin, self).__init__(skill)
self.basketball=basketball
class FootballMixin(SkillMixin):
def __init__(self,skill,football):
super(FootballMixin, self).__init__(skill)
self.football=football
class BasStudent(Student,BasketballMixin):
def __init__(self,name,gender,score,skill,basketball):
super(BasStudent, self).__init__(name,gender,score)
def getskill(self):
print("我叫 %s,我会打%s "%(self.name,self.basketball))
a=Student('jiji','boy',13)
b=BasketballMixin('high','篮球',)
c=BasStudent.getskill()
print(c)
class BasStudent(Student,BasketballMixin):
def __init__(self,name,gender,score,skill,basketball):
super(BasStudent, self).__init__(name,gender,score)
def getskill(n,k):
print("我叫 %s,我会打%s "%(n,k))
a=Student('jiji','boy',13)
b=BasketballMixin('high','篮球',)
c=BasStudent.getskill(a.name,b.basketball)
--我改成这个样子,好像能得到题主想要的结果。其原因在于如果用getskill(self),因为有两个父类,self无法区分(或者我还不知道该怎样区分)student或basketballmixin。然后我就偷懒这样改了。😀
Python3 进阶教程
44804 学习 · 244 问题
相似问题