Python中super 方法的使用

2021-07-23 15:30:47 字數 744 閱讀 8972

如果在子類中也定義了構造器,既_init_()函式,那麼基類的構造器該如何呼叫呢?

方法

一、明確指定

使用乙個子類的例項去呼叫基類的構造器,在子類的構造器中明確的指明呼叫基類的構造器。

class  c(p):

... def __init__(self):

... p.__init__(self)

... print 'calling cs construtor'

方法

二、使用super()方法

super()方法的漂亮之處在於,你不需要在定義子類構造器時,明確的指定子類的基類並顯式的呼叫,即不需要明確的提供父類,這樣做的好處就是,如果你改變了繼承的父類,你只需要修改一行**(class**行),而不需要在大量**中去查詢那個要修改的基類。另外一方面**的可移植性和重用性也更高。

>>> class  c(p):

... def __init__(self):

... super(c,self).__init__()

... print 'calling cs construtor'

...

>>> c=c()

以上**中p是c的父類。

Python中super 方法的使用

先看一段 class stmatrix object 定義乙個類 docstring for stmatrix def init self,data,timestamps,t 24,checkcomplete true 建構函式 super stmatrix,self init super表繼承,這...

python中super 方法的理解

python中物件方法的定義很怪異,第乙個引數一般都命名為self 相當於其它語言的this 用於傳遞物件本身,有時候還會有乙個引數cls 相當於類名,當直接呼叫類方法的時候使用 python2中super 的用法 super class,self init python3中super 的用法 su...

python中super方法的注意點

之前,碰到乙個很有意思的問題,呼叫super之後,並沒有按照預期執行。大概是如下的 usr bin env python coding utf 8 class a object def init self print type self mro deftest self print a.test p...