Python教程

python3中类的继承

本文主要是介绍python3中类的继承,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1、假设定义一个鸟类 BirdBase,包含两个属性name、age;两个方法eat(),fly()

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @File  : bird_base.py
# @Author: ttwang
# @Date  : 2021/10/18
# @Desc  : 鸟类BirdBase

class BirdBase(object):
    """
    假设定义一个鸟类BirdBase
    其中两个属性name,age
    两个方法eat(),fly()
    #ps: python3中,类定义默认继承object,可以不写,但是建议写上
    """
    def __init__(self,name,age):
        self.name = name
        self.age = age

    def eat(self):
        print("Bird" + self.name + "is eating foods")

    def fly(self):
        print("Bird" + self.name + "is flying")

 

2、假设此时我们还有个类Swallow,该类中也包含上面BirdBase类的两个方法和两个属性,然后还有自己的属性color和方法swallow_chirp(),

我们可以选择不用重写这两个方法,直接从BirdBase类中继承过来,直接使用:

1)首先将BirdBase类导入,然后Swallow类继承它:from 模块名 import 类名

2)对于BirdBase类中没有的属性和方法,我们需要单独定义

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @File  : swallow.py
# @Author: ttwang
# @Date  : 2021/10/18
# @Desc  : Swallow类



from python_learning.bird_base import BirdBase

class Swallow(BirdBase):   # Swallow继承BirdBase
    def __init__(self,name,age,color):
        """
        super()函数表示调用父类BirdBase的__init__()方法进行初始化;
        但Swallow类中有自己特定的属性color,而父类中无改属性,故单独赋值:
        self.color = color
        """
        super(Swallow, self).__init__(name,age)
        self.color = color

    def swallow_chirp(self):
        """
        Swallow类同样可以有自己特定的方法
        """
        print("Swallow" + self.name + "is chirping, it is" + self.color)


my_swallow = Swallow('humy',18,'black')
my_swallow.swallow_chirp()
my_swallow.eat()
my_swallow.fly()

输出:

# 从输出结果,可以看出Swallow类即可以调用自己类中特定的方法,也可以调用父类BirdBase中的方法
Swallow humy is chirping, it is black
Bird humy is eating foods
Bird humy is flying

 

这篇关于python3中类的继承的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!