国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術(shù)文章
文章詳情頁

python 子類調(diào)用父類的構(gòu)造函數(shù)實例

瀏覽:6日期:2022-08-02 16:02:48

當(dāng)子類繼承父類后,需要調(diào)用父類的方法和屬性時,需要調(diào)用父類的初始化函數(shù)。

class A(object): def __init__(self): self.nameaa = ’aa’ def funca(self): print(’function a %s’ % self.nameaa) class B(A): def __init__(self): self.namebb = ’bb’ def funcb(self): print(’function b %s’ % self.namebb) b = B()print(b.namebb)b.funcb()print(b.nameaa)b.funca()

在子類中重寫了構(gòu)造函數(shù),但新的構(gòu)造函數(shù)沒有初始化父類,當(dāng)沒有初始化父類的構(gòu)造函數(shù)時,就會報錯。

python 子類調(diào)用父類的構(gòu)造函數(shù)實例

(1)調(diào)用超類的構(gòu)造方法

class A(object): def __init__(self): self.nameaa = ’aa’ def funca(self): print(’function a %s’ % self.nameaa) class B(A): def __init__(self): self.namebb = ’bb’ A.__init__(self) #添加 def funcb(self): print(’function b %s’ % self.namebb) b = B()print(b.namebb)b.funcb()print(b.nameaa)b.funca()

python 子類調(diào)用父類的構(gòu)造函數(shù)實例

(2)使用super函數(shù)

class A(object): def __init__(self): self.nameaa = ’aa’ def funca(self): print(’function a %s’ % self.nameaa) class B(A): def __init__(self): self.namebb = ’bb’ super(B,self).__init__() def funcb(self): print(’function b %s’ % self.namebb) b = B()print(b.namebb)b.funcb()print(b.nameaa)b.funca()

python 子類調(diào)用父類的構(gòu)造函數(shù)實例

super函數(shù)返回一個super對象,解析過程自動查找所有的父類和父類的父類,當(dāng)前類和對象可以作為super函數(shù)的參數(shù)使用,調(diào)用函數(shù)返回的方法是超類的方法。使用super函數(shù)如果子類繼承多個父類只許一次繼承,使用一次super函數(shù)即可。

如果沒有重寫子類的構(gòu)造函數(shù),是可以直接使用父類的屬性和方法的。

class A(object): def __init__(self): self.nameaa = ’aa’ def funca(self): print(’function a %s’ % self.nameaa) class C(A): passc = C()c.funca()print(c.nameaa)

python 子類調(diào)用父類的構(gòu)造函數(shù)實例

補(bǔ)充知識:python3 和python2 調(diào)用父類構(gòu)造方法寫法區(qū)別

1. python3 和python2 調(diào)用父類構(gòu)造方法寫法區(qū)別

前一段時間,把之前的一個項目遷移到python3

發(fā)現(xiàn)了很多不同的地方.我這里簡單說明了,構(gòu)造方法的不同 之后可能會繼續(xù)更新不同. 主要針對項目遷移進(jìn)行總結(jié),反思. 這里就當(dāng)做筆記.

python3 代碼 調(diào)用父類的構(gòu)造方法

#!/usr/bin/env python3# -*- coding: UTF-8 -*-'''@author: Frank @contact: frank.chang@shoufuyou.com@file: py2topy3.py@time: 2018/7/7 上午7:09## python3 代碼 ''' import threadingimport queue _sentinel = object() class Consumer(threading.Thread): ''' 消費者線程類 ''' def __init__(self, name, queue): super().__init__(name=name) self.queue = queue def run(self): while True: values = self.queue.get(timeout=None) if values is _sentinel:self.queue.put(values)break ##process values ##xxx print(’consume is consuming data {}’.format(values)) print('{} finished'.format(self.getName())) if __name__ == ’__main__’: q = queue.Queue() concumser = Consumer(’consumer’, q) print(concumser)

2 python2.7 調(diào)用父類的構(gòu)造方法

#!/usr/bin/env python3# -*- coding: UTF-8 -*-'''@author: Frank @contact: frank.chang@shoufuyou.com@file: 3.py@time: 2018/7/7 上午7:05''' import Queueimport threading # 哨兵_sentinel = object() class Consumer(threading.Thread): ''' 消費者線程類 ''' def __init__(self, name, queue): super(Consumer, self).__init__(name=name) self.queue = queue def run(self): while True: values = self.queue.get(timeout=None) if values is _sentinel:self.queue.put(values)break ##process values ##xxx print(’consume is consuming data {}’.format(values)) print('{} finished'.format(self.getName())) if __name__ == ’__main__’: q = Queue.Queue() concumser = Consumer(’consumer’, q) print(concumser)

區(qū)別

主要區(qū)別是 super 的變化,

python3 中直接 super().init() 中 super 不需要傳遞任何參數(shù),直接可以調(diào)用父類的構(gòu)造方法

python2 中 super(Consumer, self).init(), 需要傳兩個參數(shù)一個是類名, 一個是self. 這樣比較麻煩,很容易混淆. 但是python3 這里處理的比較好了.

可以看下這個文檔 https://docs.python.org/3/library/functions.html#super

順便提一下, python2 和python3 中 quque 名稱換了,python3 用的是小寫 作為模塊名稱.

以上這篇python 子類調(diào)用父類的構(gòu)造函數(shù)實例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 碰碰碰人人澡人人爱摸 | 亚洲国产一成人久久精品 | 精品国产免费第一区二区 | 午夜毛片免费观看视频 | 狠狠色丁香婷婷久久综合不卡 | 国产三级在线免费观看 | 日韩美女免费视频 | 亚洲an日韩专区在线 | 杨幂精品国产专区91在线 | 洋老外米糕国产一区二区 | 女人张开腿让男人桶免费网站 | 亚洲精品第五页 | 亚洲国产国产综合一区首页 | 久久久久久青草大香综合精品 | 免费人成在观看 | 另类视频综合 | 伊人99re| 久久久久久久免费 | 特大一级aaaaa毛片 | 色欲麻豆国产福利精品 | 99精品在线看 | a级国产乱理伦片在线 | 一级毛片不卡免费看老司机 | 狠狠色丁香婷婷久久综合考虑 | 国内精品2020情侣视频 | 久久久精品一区二区三区 | 亚洲天堂中文网 | 日韩国产欧美视频 | 国产精品一区二区手机在线观看 | 亚欧毛片 | 国产成人一区二区三区视频免费 | 国产高清视频免费在线观看 | 欧美另类孕交 | 欧美xxxxx色视频在线观看 | 久久18| 综合久久99久久99播放 | 成人自拍网 | 国产r67194吃奶视频 | 欧美做爰性欧美 | 亚洲精品毛片久久久久久久 | 亚洲欧美综合国产不卡 |