一、类的继承
1、什么是继承
通过继承基类来得到基类的功能
所以我们把被继承的类称作父类或基类,继承者被称作子类
代码的重用
2、父(基)类与子类
子类拥有父类的所有属性和方法
父类不具备子类自有的属性和方法
3、继承的用法
定义子类时,将父类传入子类参数内
子类实例化可以调用自己与父类的函数与变量
父类无法调用子类的函数与变量
class Parent(object):def __init__(self, name, sex):self.name = nameself.sex = sexdef talk(self):return f'{self.name} is talking'def is_sex(self):if self.sex == 'boy':return f'{self.name} is a boy'else:return f'{self.name} is a girl'class ChildOne(Parent):def play_football(self):return f'{self.name} is playing football'class ChildTwo(Parent):def play_pingpang(self):return f'{self.name} is playing pingpang'c_one = ChildOne(name='xiaomu', sex='boy')
result = c_one.play_football()
print(result)result = c_one.talk()
print(result)c_two = ChildTwo(name='xiaoyun', sex='girl')
result = c_two.play_pingpang()
print(result)result = c_two.talk()
print(result)p = Parent(name='xiaomubaba', sex='boy')
result = p.talk()
print(result)result = p.is_sex()
print(result)
4、super函数
super函数的作用
Python子类继承父类的方法而使用的关键字,当子类继承父类后,就可以使用父类的方法
super函数的用法
class Parent(object):def __init__(self, p):print('hello i am parent %s' %p)class Child(Parent):def __init__(self, c):super().__init__('Parent')print('hello i am child %s' %c)if __name__ == '__main__':c = Child(c='Child')
5、类的多重继承
什么是多重继承
可以继承多个基(父)类
多重继承的方法
class Child(Parent1, Parent2, Parent3...)
将被继承的类放入子类的参数位中,用逗号隔开
从左向右依次继承
# coding: utf-8# 2个父类
class Tool(object):def work(self):return 'tool work'def car(self):return 'car will run'class Food(object):def work(self):return 'food work'def cake(self):return 'i like cake'# 继承父类的子类
class Person(Food, Tool):passif __name__ == '__main__':p = Person()p_car = p.car()p_cake = p.cake()print(p_car)print(p_cake)p_work = p.work()print(p_work)print(Person.__mro__)