一、类的继承
1、什么是继承
通过继承基类来得到基类的功能
所以我们把被继承的类称作父类或基类,继承者被称作子类
代码的重用
2、父(基)类与子类
子类拥有父类的所有属性和方法
父类不具备子类自有的属性和方法
3、继承的用法
定义子类时,将父类传入子类参数内
子类实例化可以调用自己与父类的函数与变量
父类无法调用子类的函数与变量
class Parent(object):
def __init__(self, name, sex):
self.name = name
self.sex = sex
def 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):
pass
if __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__)