Python中的super()方法使用簡介
子類里訪問父類的同名屬性,而又不想直接引用父類的名字,因?yàn)檎f不定什么時候會去修改它,所以數(shù)據(jù)還是只保留一份的好。其實(shí)呢,還有更好的理由不去直接引用父類的名字,
這時候就該super()登場啦——
class A:
def m(self):
print('A')
class B(A):
def m(self):
print('B')
super().m()
B().m()
當(dāng)然 Python 2 里super() 是一定要參數(shù)的,所以得這么寫:
class B(A):
def m(self):
print('B')
super(B, self).m()
super在單繼承中使用的例子:
class Foo():
def __init__(self, frob, frotz)
self.frobnicate = frob
self.frotz = frotz
class Bar(Foo):
def __init__(self, frob, frizzle)
super().__init__(frob, 34)
self.frazzle = frizzle
此例子適合python 3.x,如果要在python2.x下使用則需要稍作調(diào)整,如下代碼示例:
class Foo(object):
def __init__(self, frob, frotz):
self.frobnicate = frob
self.frotz = frotz
class Bar(Foo):
def __init__(self, frob, frizzle):
super(Bar,self).__init__(frob,34)
self.frazzle = frizzle
new = Bar("hello","world")
print new.frobnicate
print new.frazzle
print new.frotz
需要提到自己的名字。這個名字也是動態(tài)查找的,在這種情況下替換第三方庫中的類會出問題。
`super()`` 很好地解決了訪問父類中的方法的問題。
相關(guān)文章
Python openpyxl模塊學(xué)習(xí)之輕松玩轉(zhuǎn)Excel
Python提供了許多操作Excel的模塊,能夠讓我們從繁瑣的工作中騰出雙手。本文主要為大家介紹的是openpyxl模塊,它的功能相對與其他模塊更為齊全,感興趣的小伙伴快來學(xué)習(xí)一下吧2021-12-12
對python中Matplotlib的坐標(biāo)軸的坐標(biāo)區(qū)間的設(shè)定實(shí)例講解
今天小編就為大家分享一篇對python中Matplotlib的坐標(biāo)軸的坐標(biāo)區(qū)間的設(shè)定實(shí)例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-05-05
解決Jupyter-notebook不彈出默認(rèn)瀏覽器的問題
這篇文章主要介紹了解決Jupyter-notebook不彈出默認(rèn)瀏覽器的問題,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-03-03
Python爬蟲:將headers請求頭字符串轉(zhuǎn)為字典的方法
今天小編就為大家分享一篇Python爬蟲:將headers請求頭字符串轉(zhuǎn)為字典的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08
python list多級排序知識點(diǎn)總結(jié)
在本篇文章里小編給大家分享的是關(guān)于python list多級排序的相關(guān)知識點(diǎn)內(nèi)容,有需要的朋友們學(xué)習(xí)下。2019-10-10
python 監(jiān)控服務(wù)器是否有人遠(yuǎn)程登錄(詳細(xì)思路+代碼)
這篇文章主要介紹了python 監(jiān)控服務(wù)器是否有人遠(yuǎn)程登錄的方法,幫助大家利用python 監(jiān)控服務(wù)器,感興趣的朋友可以了解下2020-12-12

