python学习DAY10(继承中的相关问题)
#示例 #组合 #父类 class SchoolMember(object): def __init__(self,name,age,sex): self.name=name self.age=age self.sex=sex class Person(object): def __init__(self,job): self.job=job #子类 class Teacher(SchoolMember): def __init__(self,name,age,sex,salary,course,Person_obj): #Person_obj是为了下面多继承举例所用 super(Teacher,self).__init__(name,age,sex) #新式写法,但多继承采用这种方式的时候虽然可以避免多次执行__init__,但是会带来参数不正确的问题,因为多继承有顺序之分,对参数的顺序也有要求,但是我们没办法确定是哪个父类优先继承,因此参数的位置也就没办法确定下来 #SchoolMember.__init__(self,name,age,sex) #__init__只执行一次,如果多继承采用这种方法,会执行多次__init__,所以用super就可以避免此方法多继承带来的问题 self.salary=salary self.course=course #如果想采用多继承,以上的两种方法都不能很好的解决问题,可以通过以下方法实现 #如保留原继承SchoolMember类的情况下再继承Person类 self.person=Person_obj #注意子类构造函数的参数------>组合