Python super 用法详解及示例

Python super 用法详解及示例

在Python中,super()是一个特殊的函数,用于调用父类的方法。它的主要作用是在子类中调用父类的方法,以便继承父类的行为。通常,在子类的方法中,我们可以使用super()来调用父类的方法,并且可以传入相应的参数。

super()的语法格式如下:

super().父类方法名()

下面是三个示例,演示了super()的使用方法:

示例一:

class Animal:
    def __init__(self, name):
        self.name = name

    def eat(self):
        print(self.name + "正在吃饭")

class Dog(Animal):
    def __init__(self, name, breed):
        super().__init__(name)
        self.breed = breed

    def eat(self):
        super().eat()
        print("我是一只" + self.breed)

dog = Dog("旺财", "哈士奇")
dog.eat()

输出为:

旺财正在吃饭
我是一只哈士奇

在这个示例中,子类Dog继承了父类Animal,并覆盖了父类的eat()方法。在子类Dog中,通过super()调用了父类Animal的eat()方法,并在子类方法中添加了额外的功能。

示例二:

class Shape:
    def __init__(self, color):
        self.color = color

    def draw(self):
        print("绘制一个" + self.color + "的形状")

class Circle(Shape):
    def __init__(self, color, radius):
        super().__init__(color)
        self.radius = radius

    def draw(self):
        super().draw()
        print("绘制一个半径为" + str(self.radius) + "的圆")

circle = Circle("红色", 5)
circle.draw()

输出为:

绘制一个红色的形状
绘制一个半径为5的圆

在这个示例中,子类Circle继承了父类Shape,并覆盖了父类的draw()方法。在子类Circle中,通过super()调用了父类Shape的draw()方法,并在子类方法中添加了额外的功能。

示例三:

class Person:
    def __init__(self, name):
        self.name = name

    def say_hello(self):
        print("我叫" + self.name)

class Student(Person):
    def __init__(self, name, grade):
        super().__init__(name)
        self.grade = grade

    def say_hello(self):
        super().say_hello()
        print("我在" + self.grade + "年级")

student = Student("小明", "三年级")
student.say_hello()

输出为:

我叫小明
我在三年级年级

在这个示例中,子类Student继承了父类Person,并覆盖了父类的say_hello()方法。在子类Student中,通过super()调用了父类Person的say_hello()方法,并在子类方法中添加了额外的功能。

以上是super()的用法示例,它能够帮助我们在子类中调用父类的方法,并灵活地扩展和重用代码。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

Python 内置函数参考指南