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()的用法示例,它能够帮助我们在子类中调用父类的方法,并灵活地扩展和重用代码。