1. 程式人生 > 程式設計 >python super用法及原理詳解

python super用法及原理詳解

這篇文章主要介紹了python super用法及原理詳解,文中通過示例程式碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

概念

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

  • 允許我們避免使用基類
  • 跟隨多重繼承來使用

例項

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

class Mammal(object):
 def __init__(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,'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(Mammal):
 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 can't swim.
Dog 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.

參考文件

https://www.programiz.com/python-programming/methods/built-in/super

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。