python super用法及原理詳解
阿新 • • 發佈:2020-01-20
這篇文章主要介紹了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
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。