從父類繼承過程中,super()能不能不從父類全部繼承
#?Enter?a?code class?Person(object): ????def?__init__(self,name,gender): ????????self.name?=?name ????????self.gender?=?gender class?SkillMixin(object): ????def?__init__(self,skill): ????????self.skill?=?skill class?Student(Person): ????def?__init__(self,name,gender,score): ????????super(Student,self).__init__(name,gender) ????????self.score?=?score class?Tercher(Person): ????def?__init__(self,name,gender,course): ????????super(Tercher,self).__init__(name,gender) ????????self.course?=?course class?BasketballMixin(SkillMixin): ????def?skill(self): ????????return?'Skill?is?basketball' class?FootballMixin(SkillMixin): ????def?skill(self): ????????return?'Skill?is?football' class?BStudent(Student,BasketballMixin): ????def?__init__(self,name,gender,score?=?0): ????????super(BStudent,self).__init__(name,gender,score) class?FTercher(Tercher,FootballMixin): ????def?__init__(self,name,gender,course?=?'?'): ????????super(FTercher,self).__init__(name,gender,course) ???? s?=?BStudent('Bob','Male') print('Studen\'s?name?is?{},?Gender?is?{},?Skill?is?{}.'.format(s.name,?s.gender?,s.skill())) t?=?FTercher('Alice','Female') print('Tercher\'s?name?is?{},?Gender?is?{},?Skill?is?{}.'.format(t.name,?t.gender?,t.skill()))
Line27和Line30,super()能不能不繼承父類的全部參數(shù)?
2021-10-02
可以用私有屬性。
1、 super()._init_(param,param)這句話,調(diào)用了父類的初始化方法,那么如果需要傳父類初始化方法的全部參數(shù),但可以設(shè)置默認(rèn)參數(shù),就可以不傳color這個參數(shù),父類通過二個下劃線設(shè)置私有屬性。子類不能繼承。