python super用法及原理詳解

2022-10-03 18:36:12 字數 1699 閱讀 6318

概念

super作為python的內建函式。主要作用如下:

例項在單個繼承的場景下,一般使用super來呼叫基類來實現:

下面是乙個例子:

class mammal(object):

def __wugbzinit__(self, mammalname):

print(mammalname, 'is a warm-blooded animal.')

class dog(mammal):

def __init__(self):

print('dog has four legs.')

super().__init__('dog')

d1 = dog()

輸出結果:

➜ super git:(master) ✗ py super_script.py

dog has four legs.

dog is a warm-blooded animal.

super在多重繼承裡面的使用:

下面是乙個例子:

class animal:

def __init__(self, animalname):

print(animalname, 'is an animal.');

class mammal(animal):

def __init__(self, mammalname):

print(mammalname, 'is a warm-blooded animal.')

super().__init__(mammalname)

class nonwingedmammal(mammal):

def __init__(self, nonwingedmammalname):

print(nonwingedmammalname, "can't fly.")

super().__init__(nonwingedmammalname)

class nonmarinemammal(mamma程式設計客棧l):

def __init__(self, nonmarinemammalname):

print(nonmarinemammalname, "can't swim.")

super().__init__(nonmarinemammalname)

class dog(nonmarinemammal, nonwingedmammal):

def __init__(self):

print('dog has 4 legs.');

super().__init__('dog')

d = dog()

print('')

bat = nonmarinemammal('bat')

輸出結果:

➜ super git:(master) ✗ py super_muli.py

dog has 4 legs.

dog c't swim.

do程式設計客棧g can't fly.

dog is a warm-blooded animal.

dog is an animal.

bat can't swim.

bat is a warm-blooded animal.

bat is an animal.

參考文件

本文標題: python super用法及原理詳解

本文位址:

Python super 函式用法總結

了解 super 函式之前,我們首先要知道 super 的用途是啥?語法格式 super type object or type 函式描述 返回乙個 物件,它會將方法呼叫委託給 type 的父類或兄弟類。引數說明 type 類,可選引數。object or type 物件或類,一般是 self,可選...

Python super關鍵字用法

使用super關鍵字,會按照繼承順序執行相應類中的方法,在沒有多繼承的情況下,一般是執行父類 coding utf 8 usr bin python class counter object def init self super counter,self setattr counter 0 def...

python super 用法之 類內類外使用

當子類和父類有相同的方法的時候,子類缺省會呼叫自己的方法而不能使用父類的方法。如果想使用父類的方法,我們就可以使用super 方法來呼叫父類的方法 1.super 類名,物件名 方法 既可以在類的內部也可以在類的外部使用。2.父類類名.方法名 self animal.eat self 既可以在內部也...