這篇文章主要介紹了python super用法及原理詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
概念
super作為python的內建函數。主要作用如下:
- 允許我們避免使用基類
- 跟隨多重繼承來使用
實例
在單個繼承的場景下,一般使用super來調用基類來實現:
下面是一個例子:
1
2
3
4
5
6
7
8
9
10
|
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在多重繼承里面的使用:
下面是一個例子:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
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(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' ) |
輸出結果:
1
2
3
4
5
6
7
8
9
10
|
? 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
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。
原文鏈接:https://www.cnblogs.com/dylancao/p/12077605.html