python 内置函数

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() 

程序运行结果:

动物吃饭...
蓝猫吃饭...

 我们看到输出的顺序是不一样的。

在继承的时候,谁靠前,优先调用谁。