python 類中 super ()方法的使用


super() 是pyhton 中調用父類(超類)的一種方法,在子類中可以通過super()方法來調用父類的方法:

超類: 是指 2層以上的繼承關系,假如 C類繼承B類,B類由繼承A類,那么A類就是C類的超類~

1 通過super() 來調用父類的__init__ 構造方法:

class Person():
      def __init__(self):
        print('我是Peson的__init__構造方法')

class Student(Person):
        def __init__(self):
         super().__init__()
          print'我是Student的__init__構造方法')

stu = Student()
  
-----------------------------------------
我是Peson的__init__構造方法
我是Student的__init__構造方法

2 通過supper() 來調用與子類同名的父類方法

class Person():
      def say(self):
       print('我是Peson的say方法')

class Student(Person):
        def say(self):
        super().say()
        print'我是Student的的say方法')

stu = Student()
stu.say()
-----------------------------------------
'我是Peson的say方法'
'我是Student的的say方法'

3 通過super()調用超類的同名方法

class Person():
      def say(self):
       print('我是Peson的say方法')

class Student(Person):
        def __init__(self):
        print'我是Student的__init__構造方法')

class Xiaoming(Student):
        def say(self):
             super().say()
       print('我是Xiaoming的say方法')

Xiao= Xiaoming()
Xiao.say()
------------------------------------
'我是Student的__init__構造方法'
'我是Peson的say方法'
 我是Xiaoming的say方法

注意:因為Xiaoming 沒有__init__ 構造方法,實例化的時候會執行父類Student的__init__構造方法,所以先打印我是Student的__init__構造方法.super().say()因為Xiaoming 的父類Student 沒有say()方法,就執行了其超類Person的say()方法,如果Student 有say方法則執行Student的say 方法
    比如:

class Person():
      def say(self):
       print('我是Peson的say方法')

class Student(Person):
        def __init__(self):
        print'我是Student的__init__構造方法')
        def say(self):
       print('我是Student的say方法')


class Xiaoming(Student):
        def say(self):
             super().say()
       print('我是Xiaoming的say方法')

Xiao= Xiaoming()
Xiao.say()
--------------------------

'我是Student的__init__構造方法'
'我是Student的say方法'
 我是Xiaoming的say方法

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM