這篇文章主要介紹了python super用法及原理詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
概念
super作為python的內(nèi)建函數(shù)。主要作用如下:
- 允許我們避免使用基類
- 跟隨多重繼承來使用
實(shí)例
在單個(gè)繼承的場景下,一般使用super來調(diào)用基類來實(shí)現(xiàn):
下面是一個(gè)例子:
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() |
輸出結(jié)果:
? super git:(master) ? py super_script.py
Dog has four legs.
Dog is a warm-blooded animal.
super在多重繼承里面的使用:
下面是一個(gè)例子:
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' ) |
輸出結(jié)果:
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
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。
原文鏈接:https://www.cnblogs.com/dylancao/p/12077605.html