![f852235c7cc44c42a8d1518e6b579fdd.png](https://i-blog.csdnimg.cn/blog_migrate/677ddb5b977336ff5d30f603e76aadb4.jpeg)
python里类的继承有单继承与多重继承,继承的定义里需要用到super()方法。
class Big_family:
#类属性的创建
fmai_num=4
fmai_add='希望石家庄抗疫早日成功小区'
member='父母,儿子,女儿'
#初始化对象属性的构造方法,实例化类时此方法会自动执行,如果实例化类时给类传了参数,则此参数也是呈交给此方法来处理输入的数据
def __init__(self,name,sex,age):
self.name=name
self.sex=sex
self.age=age
#类方法的创建,此与函数的定义相类似,区别在于类方法的创建首个形参必须是self
def self_introduce(self):
print('我的名字是 '+self.name+',n性别 '+ self.sex+',n年龄 '+str(self.age)+'。')
#类属性设置与获取方法的创建
def set_age(self,age):
self.age=age
def get_sex(self):
return self.sex
def get_name(self):
return self.name
def get_age(self):
return self.age
class Small_fami(Big_family):
def __init__(self,name,sex,age,weight):
super().__init__(name,sex,age) #此处不能再有self参数
#Big_family.__init__(self,name,sex,age) #也可以用基类名称调用构造函数,这种调用限于单继承情况下,但此时又需要有self参数
self.weight=weight
def self_introduce(self):
print('我来自小家庭')
class Father(Small_fami):
#此处虽为多重继承但参数只需要传入一个,因Small_fami本身是由Big_family继承而来,故不再需要传入Big_family
def __init__(self,name,sex,age,weight):
super().__init__(name,sex,age,weight) #此处需要传入所有被继承类的所有参数
def self_introduce(self):
super(Father,self).self_introduce()
#多重继承中子类调用方法的顺序是一种MRO算法。当调用super()时,其实是调用MRO顺序中的下一个类的方法
#即Father类所创建对象调用此self_introduce()方法时,其实调用的是基类中的self_introduce()方法,结果为'我来自小家庭'
def work(self,factory,place):
self.factory=factory
self.place=place
print('我工作在'+self.place,self.factory)
![e63aa3a77e2cd5f689c6362273c64a36.png](https://i-blog.csdnimg.cn/blog_migrate/b121a2092a51035ee3bc8b8bc1686e75.jpeg)
祝愿石家庄抗疫早日成功,英雄早日凯旋!!!