python super()
函数是子类调用父类(超类)的一种方法,在子类中可以通过super()方法来调用父类的方法。它是python的内置函数。
语法
语法如下:super(type[, object-or-type])
参数
- type:指定要调用的类。
- object-or-type:可选参数,对象或类,一般是self。
返回值
没有返回值。
注意
Python 3 可以使用直接使用 super().xxx 代替 super(Class, self).xxx 调用。
程序示例
介绍一些例子了解python super()
函数的使用方法。
例1
单继承super()函数的使用方法。
#!/usr/bin/python
# coding=utf-8
class Animal:
def eat(self):
print("吃饭...")
class Cat(Animal):
def sleep(self):
# super()
super().eat()
print("睡觉...")
cat = Cat()
cat.sleep()
程序运行结果:
吃饭...
睡觉...
睡觉...
例2
多继承super()函数的使用方法。
#!/usr/bin/python
# coding=utf-8
class Animal:
def eat(self):
print("动物吃饭...")
class Cat():
def eat(self):
print("猫吃饭...")
class BlueCat(Cat, Animal):
def eat(self):
# super()
super().eat()
print("蓝猫吃饭...")
blueCat = BlueCat()
blueCat.eat()
程序运行结果:
猫吃饭...
蓝猫吃饭...
蓝猫吃饭...
然后改变继承的顺序class BlueCat(Cat, Animal) 改为 class BlueCat(Animal, Cat)
#!/usr/bin/python
# coding=utf-8
class Animal:
def eat(self):
print("动物吃饭...")
class Cat():
def eat(self):
print("猫吃饭...")
class BlueCat(Animal, Cat):
def eat(self):
# super()
super().eat()
print("蓝猫吃饭...")
blueCat = BlueCat()
blueCat.eat()
程序运行结果:
动物吃饭...
蓝猫吃饭...
蓝猫吃饭...
我们看到输出的顺序是不一样的。
在继承的时候,谁靠前,优先调用谁。