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

Python類多重繼承方式

 更新時間:2023年11月10日 17:14:32   作者:小廖同志_  
這篇文章主要介紹了Python類多重繼承方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

Python類多重繼承

在 Python中有6種標準數(shù)據(jù)類型,分別為:

  • Number(數(shù)字)
  • String(字符串)
  • List(列表)
  • Tuple(元組)
  • Sets(集合)
  • Dict(字典)

而根據(jù)內(nèi)存中的內(nèi)容是否可變,分為可變類型與不可變類型。

其中,數(shù)字、字符串、元組和集合被稱為不可變類型,列表和字典稱為可變類型

1. 不可變類型子類化

假定我們需要處理大量的浮點數(shù),將浮點數(shù)四舍五入后得到最后的結果。

這時我們可以定義這樣一個類,用來進行這個操作。

例如:

class RoundFloat(float):  
    def __new__(cls, val):  
        return float.__new__(cls,round(val,1))  
print(RoundFloat(2.6557))  

結果為:

2.7

在這個類里面,通過調(diào)用父類的構造器來創(chuàng)建對象,然后實例化float、RoundFloat。

這里我們僅僅是從一種類型中派生而來,我們可以使用super()內(nèi)建函數(shù)去捕獲對應的父類,然后調(diào)用父類的__new__()方法進行實例化。

例如:

class RoundFloat(float):  
    def __new__(cls, val):  
        return super(RoundFloat,cls).__new__(cls,round(val,1))  
print(RoundFloat(2.6557))  

結果為:

2.7

2. 可變類型子類化

子類化一個可變類型與子類化不可變類型很類似,但是我們可能不需要使用__new__()或者是__init__(),因為一般情況下我們定義的類所繼承到的類型的默認行為就足夠我們用了。

例如:

class SortedKeyDict(dict):  
    def keys(self):  
        return sorted(super( SortedKeyDict, self).keys())  
d = SortedKeyDict((('zhangsan', 1), ('lisi', 2),('wangwu', 3)))  
print("By iterator:".ljust(12), [key for key in d])  
print("By keys():".ljust(12), d.keys())  

結果為:

By iterator: ['zhangsan', 'lisi', 'wangwu']  
By keys():   ['lisi', 'wangwu', 'zhangsan']  

3. 多重繼承

在 Python 中,多重繼承就是允許子類繼承多個父類,子類可以調(diào)用多個父類的方法和屬性。

但是,當多個父類擁有相同方法名的方法時,我們通過方法名調(diào)用父類方法就有一定的順序。

例如:

class A(object):  
    def test(self):  
        print("this is A.test()")  
class B(object):  
    def test(self):  
        print("this is B.test()")  
    def check(self):  
        print("this is B.check()")  
class C(A,B):  
    pass  
class D(A,B):  
    def check(self):  
        print("this is D.check()")  
class E(C,D):  
    pass

在這個例子中,類C繼承自類A和類B,類D繼承自類A和類B,類E繼承自類C和類D。

在我們調(diào)用E.test()時,在類A和類B中都存在這個方法。

但是由于在多重繼承中遵循廣度優(yōu)先的方式,所以程序最先搜索類E,然后再搜索類C和類D。

如果還沒找到,再到類A中查找。若類A中存在這個方法,則調(diào)用這個方法,若在類A中也沒有找到,則再到類B中查找。

調(diào)用E.test()結果為:

this is A.test()  

如果調(diào)用E.check()方法,那么先到類E中查找,然后在類C中查找,再到類D中查找。

在類D中找到這個方法,調(diào)用這個方法。

調(diào)用E.check()的結果為:

this is D.check()  

總結

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • python logging 重復寫日志問題解決辦法詳解

    python logging 重復寫日志問題解決辦法詳解

    這篇文章主要介紹了python logging 重復寫日志問題解決辦法詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-08-08
  • Python可視化神器pyecharts之繪制地理圖表練習

    Python可視化神器pyecharts之繪制地理圖表練習

    這篇文章主要介紹了Python可視化神器pyecharts之繪制地理圖表,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-07-07
  • 用python統(tǒng)計代碼行的示例(包括空行和注釋)

    用python統(tǒng)計代碼行的示例(包括空行和注釋)

    今天小編就為大家分享一篇用python統(tǒng)計代碼行的示例(包括空行和注釋),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • python獲取指定名字的程序的文件路徑的兩種方法

    python獲取指定名字的程序的文件路徑的兩種方法

    本文主要介紹了python獲取指定名字的程序的文件路徑的兩種方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2025-09-09
  • Python數(shù)據(jù)類型之Dict字典實例詳解

    Python數(shù)據(jù)類型之Dict字典實例詳解

    這篇文章主要介紹了Python數(shù)據(jù)類型之Dict字典,結合具體實例形式詳細分析了Python字典的概念、原理、定義、元素添加、刪除、遍歷等相關操作技巧,需要的朋友可以參考下
    2019-05-05
  • python配置grpc環(huán)境

    python配置grpc環(huán)境

    gRPC 是一款高性能、開源的 RPC 框架,產(chǎn)自 Google,基于 ProtoBuf 序列化協(xié)議進行開發(fā),支持多種語言(Golang、Python、Java等),本篇只介紹 Python 的 gRPC 安裝使用
    2019-01-01
  • Django Web開發(fā)中django-debug-toolbar的配置以及使用

    Django Web開發(fā)中django-debug-toolbar的配置以及使用

    正在發(fā)愁怎么調(diào)試Django,就遇到了Django Debug Toolbar這個利器。下面這篇文章主要給大家介紹了關于django web開發(fā)中django-debug-toolbar的配置以及使用的相關資料,文中通過圖文及示例代碼介紹的非常詳細,需要的朋友可以參考下
    2018-05-05
  • Python成功解決讀文件出現(xiàn):IOError:?[Errno?0]?Error的錯誤

    Python成功解決讀文件出現(xiàn):IOError:?[Errno?0]?Error的錯誤

    在Python編程中,處理文件是常見的任務之一,但偶爾也會遇到各種錯誤,包括IOError,盡管Python?3.x中IOError已被OSError和FileNotFoundError等更具體的異常所取代,由于[Errno?0]不直接指向具體的錯誤類型,我們將討論一系列可能導致IOError的常見情況,需要的朋友可以參考下
    2024-07-07
  • python變量不能以數(shù)字打頭詳解

    python變量不能以數(shù)字打頭詳解

    下面小編就為大家?guī)硪黄猵ython變量不能以數(shù)字打頭詳解。小編覺得挺不錯的,現(xiàn)在就分享給大家。也給大家做個參考。一起跟隨小編過來看看吧
    2016-07-07
  • Python使用PyFiglet實現(xiàn)終端輸出炫酷的ASCII藝術字效果

    Python使用PyFiglet實現(xiàn)終端輸出炫酷的ASCII藝術字效果

    PyFiglet是一個基于Python的純文本到ASCII藝術字轉(zhuǎn)換工具,它實現(xiàn)了FIGlet的完整功能,本文給大家介紹了Python如何使用PyFiglet實現(xiàn)終端輸出炫酷的ASCII藝術字效果,需要的朋友可以參考下
    2025-12-12

最新評論

江都市| 隆林| 班玛县| 榆中县| 富平县| 闽侯县| 阜康市| 山西省| 新干县| 洪江市| 会理县| 油尖旺区| 永登县| 阿鲁科尔沁旗| 鹿邑县| 珠海市| 永兴县| 龙泉市| 云安县| 剑川县| 外汇| 永德县| 资源县| 绍兴县| 伊金霍洛旗| 连山| 南江县| 吉首市| 舒城县| 安国市| 龙陵县| 扶沟县| 裕民县| 宁化县| 怀安县| 潮安县| 东乌珠穆沁旗| 岫岩| 涞源县| 通河县| 来凤县|