学科分类
目录
基础

单继承

“龙生龙,凤生凤,老鼠的儿子会打洞”,这句话将动物界中的继承关系表现的淋漓尽致。在Python中,类与类之间也具有继承关系,其中被继承的类称为父类或基类,继承的类称为子类或派生类。子类在继承父类时,会自动拥有父类中的方法和属性。

单继承指的是子类只继承一个父类,其语法格式如下:

class 子类(父类):

定义一个表示两栖动物的父类Amphibian和一个表示青蛙的子类Frog,示例代码如下:

class Amphibian:
    name = "两栖动物"    
    def features(self):
        print("幼年用鳃呼吸")
        print("成年用肺兼皮肤呼吸")
class Frog(Amphibian):  # Frog类继承自Amphibian类
    def attr(self):
        print(f"青蛙是{self.name}")
        print("我会呱呱叫")

上述代码定义的Amphibian类中包含类属性name与实例方法features(),Frog类继承Amphibian类并定义了自己的方法attr()。

创建Frog类的对象frog,使用frog对象分别调用Amphibian类与Frog类中的方法,示例代码如下:

frog = Frog()                # 创建类的实例化对象
print(frog.name)             # 访问父类的属性
frog.features()              # 使用父类的方法
frog.attr()                  # 使用自身的方法

运行程序,结果如下所示:

两栖动物
幼年用鳃呼吸。
成年用肺兼皮肤呼吸。
青蛙是两栖动物。
我会呱呱叫。

从输出结果中可以看出,子类继承父类之后,就拥有从父类继承的属性和方法,它既可以调用自己的方法,又可以调用从父类继承的方法。

多学一招:isinstance()函数与issubclass()函数

Python提供了两个和继承相关的函数,分别是isinstance()函数和issubclass()函数。

isinstance(o,t)函数用于检查对象的类型,它有2个参数,第1个参数是要判断类型的对象(o),第二个参数是类型(t),如果o是t类型的对象,则函数返回True,否则返回False。例如:

>>> isinstance(frog, Frog)
True

函数issubclass(cls, classinfo)用于检查类的继承关系,它也有2个参数,第一个参数是要判断的子类类型(cls),第二个参数是要判断的父类类型(classinfo),如果cls类型是classinfo类型的子类,则函数返回True,否则返回False。例如:

>>> issubclass(Frog, AmphAnimal)
True
点击此处
隐藏目录