最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python中super().__init__()測(cè)試以及理解

 更新時(shí)間:2021年12月06日 09:02:00   作者:紅鯉魚(yú)與彩虹  
__init__()一般用來(lái)創(chuàng)建對(duì)象的實(shí)例變量,或一次性操作,super()用于調(diào)用父類(lèi)的方法,可用來(lái)解決多重繼承問(wèn)題,下面這篇文章主要給大家介紹了關(guān)于Python中super().__init__()測(cè)試及理解的相關(guān)資料,需要的朋友可以參考下

python里的super().init()有什么用?

對(duì)于python里的super().__init__()有什么作用,很多同學(xué)沒(méi)有弄清楚。

直白的說(shuō)super().__init__(),就是繼承父類(lèi)的init方法,同樣可以使用super()點(diǎn) 其他方法名,去繼承其他方法。

Python super().__init__()測(cè)試

?測(cè)試一、我們嘗試下面代碼,沒(méi)有super(A, self).__init__()時(shí)調(diào)用A的父類(lèi)Root的屬性和方法(方法里不對(duì)Root數(shù)據(jù)進(jìn)行二次操作)

class Root(object):
    def __init__(self):
        self.x= '這是屬性'

    def fun(self):
    	#print(self.x)
        print('這是方法')
        
class A(Root):
    def __init__(self):
        print('實(shí)例化時(shí)執(zhí)行')

test = A()		#實(shí)例化類(lèi)
test.fun()	#調(diào)用方法
test.x		#調(diào)用屬性

下面是結(jié)果:

Traceback (most recent call last):

實(shí)例化時(shí)執(zhí)行

這是方法

? File "/hom/PycharmProjects/untitled/super.py", line 17, in <module>

? ? test.x? # 調(diào)用屬性

AttributeError: 'A' object has no attribute 'x'

可以看到此時(shí)父類(lèi)的方法繼承成功,可以使用,但是父類(lèi)的屬性卻未繼承,并不能用

測(cè)試二、我們嘗試下面代碼,沒(méi)有super(A,self).__init__()時(shí)調(diào)用A的父類(lèi)Root的屬性和方法(方法里對(duì)Root數(shù)據(jù)進(jìn)行二次操作)

class Root(object):
    def __init__(self):
        self.x= '這是屬性'

    def fun(self):
    	print(self.x)
        print('這是方法')
        
class A(Root):
    def __init__(self):
        print('實(shí)例化時(shí)執(zhí)行')

test = A()		#實(shí)例化類(lèi)
test.fun()	#調(diào)用方法
test.x		#調(diào)用屬性

結(jié)果如下

Traceback (most recent call last):

? File "/home/PycharmProjects/untitled/super.py", line 16, in <module>

? ? test.fun()? # 調(diào)用方法

? File "/home/PycharmProjects/untitled/super.py", line 6, in fun

? ? print(self.x)

AttributeError: 'A' object has no attribute 'x'

可以看到此時(shí)報(bào)錯(cuò)和測(cè)試一相似,果然,還是不能用父類(lèi)的屬性

測(cè)試三、我們嘗試下面代碼,加入super(A, self).__init__()時(shí)調(diào)用A的父類(lèi)Root的屬性和方法(方法里對(duì)Root數(shù)據(jù)進(jìn)行二次操作)

class Root(object):
    def __init__(self):
        self.x = '這是屬性'

    def fun(self):
        print(self.x)
        print('這是方法')


class A(Root):
    def __init__(self):
        super(A,self).__init__()
        print('實(shí)例化時(shí)執(zhí)行')


test = A()  # 實(shí)例化類(lèi)
test.fun()  # 調(diào)用方法
test.x  # 調(diào)用屬性

結(jié)果輸出如下

實(shí)例化時(shí)執(zhí)行

這是屬性

這是方法

此時(shí)A已經(jīng)成功繼承了父類(lèi)的屬性,所以super().__init__()的作用也就顯而易見(jiàn)了,就是執(zhí)行父類(lèi)的構(gòu)造函數(shù),使得我們能夠調(diào)用父類(lèi)的屬性。

上面是單繼承情況,我們也會(huì)遇到多繼承情況,用法類(lèi)似,但是相比另一種Root.__init__(self),在繼承時(shí)會(huì)跳過(guò)重復(fù)繼承,節(jié)省了資源。

還有很多關(guān)于super的用法可以參考

super的使用

super() 在 python2、3中的區(qū)別

Python3.x 和 Python2.x 的一個(gè)區(qū)別: Python 3 可以使用直接使用 super().xxx 代替 super(Class, self).xxx :

python3直接寫(xiě)成 super().方法名(參數(shù))

python2必須寫(xiě)成 super(父類(lèi),self).方法名(參數(shù))

例:

python3: super().__init__()

python2: super(父類(lèi),self).__init__()

Python3.x 實(shí)例:

class A:
     def add(self, x):
         y = x+1
         print(y)
class B(A):
    def add(self, x):
        super().add(x)
b = B()
b.add(2)  # 3

Python2.x 實(shí)例:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
class A(object):   # Python2.x 記得繼承 object
    def add(self, x):
         y = x+1
         print(y)
class B(A):
    def add(self, x):
        super(B, self).add(x)
b = B()
b.add(2)  # 3

總結(jié)

到此這篇關(guān)于Python中super().__init__()測(cè)試以及理解的文章就介紹到這了,更多相關(guān)Python?super().__init__()測(cè)試內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python多線程即相關(guān)理念詳解

    Python多線程即相關(guān)理念詳解

    這篇文章主要為大家介紹了Python多線程即相關(guān)理念,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2021-11-11
  • 使用Flask創(chuàng)建簡(jiǎn)單的圖片上傳站點(diǎn)的流程步驟

    使用Flask創(chuàng)建簡(jiǎn)單的圖片上傳站點(diǎn)的流程步驟

    在網(wǎng)絡(luò)應(yīng)用程序中,實(shí)現(xiàn)圖片上傳功能是一項(xiàng)常見(jiàn)的需求,Flask框架提供了簡(jiǎn)單而靈活的工具,使得構(gòu)建這樣的功能變得相對(duì)簡(jiǎn)單,本文將介紹如何使用Flask框架創(chuàng)建一個(gè)簡(jiǎn)單的圖片上傳站點(diǎn),以及其中涉及的關(guān)鍵技術(shù)和步驟,需要的朋友可以參考下
    2024-05-05
  • python basemap 畫(huà)出經(jīng)緯度并標(biāo)定的實(shí)例

    python basemap 畫(huà)出經(jīng)緯度并標(biāo)定的實(shí)例

    今天小編就為大家分享一篇python basemap 畫(huà)出經(jīng)緯度并標(biāo)定的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-07-07
  • TensorFlow打印輸出tensor的值

    TensorFlow打印輸出tensor的值

    這篇文章主要介紹了TensorFlow打印輸出tensor的值,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • Python打印scrapy蜘蛛抓取樹(shù)結(jié)構(gòu)的方法

    Python打印scrapy蜘蛛抓取樹(shù)結(jié)構(gòu)的方法

    這篇文章主要介紹了Python打印scrapy蜘蛛抓取樹(shù)結(jié)構(gòu)的方法,實(shí)例分析了打印scrapy蜘蛛抓取樹(shù)結(jié)構(gòu)的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-04-04
  • Django零基礎(chǔ)入門(mén)之路由path和re_path詳解

    Django零基礎(chǔ)入門(mén)之路由path和re_path詳解

    這篇文章主要介紹了Django零基礎(chǔ)入門(mén)之路由path和re_path,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-09-09
  • 詳談Pandas中iloc和loc以及ix的區(qū)別

    詳談Pandas中iloc和loc以及ix的區(qū)別

    今天小編就為大家分享一篇詳談Pandas中iloc和loc以及ix的區(qū)別,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-06-06
  • 利用pyinstaller將py文件打包為exe的方法

    利用pyinstaller將py文件打包為exe的方法

    本篇文章主要介紹了利用pyinstaller將py文件打包為exe的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-05-05
  • python 計(jì)算數(shù)組中每個(gè)數(shù)字出現(xiàn)多少次--“Bucket”桶的思想

    python 計(jì)算數(shù)組中每個(gè)數(shù)字出現(xiàn)多少次--“Bucket”桶的思想

    這篇文章主要介紹了python 計(jì)算數(shù)組中每個(gè)數(shù)字出現(xiàn)多少次--“Bucket”桶的思想,需要的朋友可以參考下
    2017-12-12
  • Python上下文管理器用法及實(shí)例解析

    Python上下文管理器用法及實(shí)例解析

    這篇文章主要介紹了Python上下文管理器用法及實(shí)例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11

最新評(píng)論

梁河县| 江华| 大化| 万荣县| 沅陵县| 定安县| 嘉鱼县| 神池县| 潼关县| 子洲县| 乌拉特中旗| 安多县| 武冈市| 扬州市| 阿拉善左旗| 景谷| 四平市| 宁国市| 邵东县| 读书| 镇宁| 卓尼县| 嘉黎县| 古田县| 饶平县| 房产| 当阳市| 章丘市| 长宁县| 洛浦县| 郎溪县| 宁波市| 义乌市| 洛宁县| 安龙县| 万州区| 临洮县| 博爱县| 长泰县| 鄯善县| 晋城|