日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

深入淺析python繼承問題

系統 1786 0

有如下的代碼:

            
class p1:
def __init__(self,a,b):
print("init in p1")
self.a1=a
self.b1=b
self.f1()
def f1(self):
print("f1 in p1")
class c1(p1):
def __init__(self,a,b,c=2):
print("init in c1")
p1.__init__(self,a,b)
self.c1=c
self.f1()
def f1(self):
print("f1 in p2")
class c2(c1):
pass
c=c2(11,22)
print(c.a1)
print(c.b1)
print(c.c1)
          

然后代碼的運行結果如下:

            
F:\python_code\test>python class_init.py
init in c1
init in p1
f1 in p2
f1 in p2
11
22
2
          

關于的代碼的運行過程,我有以下的疑問,我在 c1 的 __init__ 函數中會調用到p1.__init__(),然后會每次都是運行 c1.f1() 函數,沒有運行 p1.f1() 的函數,在 p1 運行的 f1(),怎么也是 c1.f1()。為什么?

原因分析:

p1.__init__(self,a,b)

這行代碼中的self是c1的對象。所以傳給p1里面的self也就是c1的呀。

以上內容所述通過代碼給大家介紹了python繼承問題,希望對大家有所幫助!


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。。?/p>

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 鄢陵县| 三明市| 静安区| 牙克石市| 汉中市| 白银市| 黑河市| 涪陵区| 梨树县| 石城县| 平乡县| 宝山区| 江达县| 昆明市| 揭东县| 德化县| 观塘区| 志丹县| 尼玛县| 嵊州市| 棋牌| 万盛区| 克什克腾旗| 济源市| 乌审旗| 儋州市| 张家港市| 罗城| 平顶山市| 吴川市| 和林格尔县| 蒙阴县| 台湾省| 西乌| 颍上县| 靖安县| 凤台县| 淮南市| 大兴区| 东平县| 林口县|