纯概念介绍:
装饰器:其实就是修改函数功能的一种函数
继承介绍:
python是面向对象的编程,面向对象编程好处之一就是代码重用。代码重用的常用方法就是通过继承机制
概念:是类与类之间的一种关系,就是子类与父类的继承关系
继承分类:
1、单继承:子类继承1个基类(父类)
2、多继承:子类继承多个基类(父类)
使用继承的场景:抽象出各个子类具有共性的属性或方法,然后以基类(父类)形式实现,更有益于重用和重构,修改
一、Python类的继承
如下定义一个动物类Animal为基类,它基本两个实例属性name和age、一个方法call。
class Animal(object): # python3中所有类都可以继承于object基类
def __init__(self, name, age):
self.name = name
self.age = age
def call(self):
print(self.name, '会叫')
######
# 现在我们需要定义一个Cat 猫类继承于Animal,猫类比动物类多一个sex属性。
######
class Cat(Animal):
def __init__(self,name,age,sex):
super(Cat, self).__init__(name,age) # 不要忘记从Animal类引入属性
self.sex=sex
if __name__ == '__main__': # 单模块被引用时下面代码不会受影响,用于调试
c = Cat('喵喵', 2, '男') # Cat继承了父类Animal的属性
c.call() # 输出 喵喵 会叫 ,Cat继承了父类Animal的方法
注意:一定要用 super(Cat, self).__init__(name,age) 去初始化父类,否则,继承自 Animal的 Cat子类将没有 name和age两个属性。
函数super(Cat, self)将返回当前类继承的父类,即 Animal,然后调用__init__()方法,注意self参数已在super()中传入,在__init__()中将隐式传递,不能再写出self。
注意:一定要用 super(Cat, self).__init__(name,age) 去初始化父类,否则,继承自 Animal的 Cat子类将没有 name和age两个属性。
函数super(Cat, self)将返回当前类继承的父类,即 Animal,然后调用__init__()方法,注意self参数已在super()中传入,在__init__()中将隐式传递,不能再写出self。