欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

一文帶你了解python中的多態(tài)性

 更新時間:2023年11月05日 16:25:01   作者:跡憶客  
多態(tài)性是 OOP 的一個特征,這意味著一個名稱可以具有不同的功能, 這篇文章主要為大家詳細介紹了如何在 Python 中實現(xiàn)多態(tài)性,感興趣的小伙伴可以學(xué)習(xí)一下

多態(tài)性是 OOP 的一個特征,這意味著一個名稱可以具有不同的功能。 單個實體可以采取不同的形式。

本篇文章將介紹如何在 Python 中實現(xiàn)多態(tài)性。

Python 中的多態(tài)性

理解這一點的最佳方法是使用 len() 函數(shù)。 對于不同的對象,該函數(shù)有不同的解釋。

對于列表,它將返回存在的總元素;對于字符串,它將返回存在的總字符。

代碼:

lst = ['fql', 'jiyik']
s = 'fqljiyik'
print(len(lst), len(s))

輸出:

2 8

說明 Python 中多態(tài)性的另一個常見功能是 + 運算符。 該運算符可以在 Python 中執(zhí)行兩個數(shù)字之間的加法。

但是,當(dāng)與字符串一起使用時,它充當(dāng)連接運算符來組合兩個字符串。

代碼:

a = 5 + 6
s = 'fql' + 'jiyik'
print(a, s)

輸出:

11 fqljiyik

在 Python 中使用類方法實現(xiàn)多態(tài)性

Python 中的一切都是對象,并且屬于某個類。 這些方法與類的對象相關(guān)聯(lián)。

這就是為什么 + 運算符和 len() 函數(shù)對不同的對象執(zhí)行不同的功能。 + 運算符調(diào)用為不同對象定義不同的魔術(shù)函數(shù)。

我們可以創(chuàng)建我們的類并實現(xiàn)這一目標(biāo)。 兩個類可以具有相同名稱的函數(shù),但具有不同的用途和不同的定義。

代碼:

class A:
    def fun(self):
        print("Class A")

class B:
    def fun(self):
        print("Class B")

ob1 = A()
ob2 = B()
for i in (ob1, ob2):
    i.fun()

輸出:

Class A
Class B

在 Python 中使用方法重寫實現(xiàn)多態(tài)性

Python 中的多態(tài)性也與類繼承相關(guān)。 繼承是指一個類訪問另一個類的功能。

一個類及其子類可能包含同名的函數(shù),我們可以在Python中使用函數(shù)重寫。 使用方法重寫,我們可以在子類中實現(xiàn)已經(jīng)定義的方法。

我們可以根據(jù)子類重新定義函數(shù)。

代碼:

class A:
    def fun(self):
        print("Class A")

class B(A):
    def fun(self):
        print("Class B")

ob1 = A()
ob2 = B()
for i in (ob1, ob2):
    i.fun()

輸出:

Class A
Class B

在上面的代碼示例中,類 B 繼承自類 A,但 fun() 方法在類 B 中被重寫,并根據(jù)類進行定義。

我們還可以在重寫函數(shù)中從 A 類訪問函數(shù) fun()。

代碼:

class A:
    def fun(self):
        print("Class A")

class B(A):
    def fun(self):
        A.fun(self)
        print("Class B")

ob2 = B()
ob2.fun()

輸出:

Class A
Class B

在 Python 中使用函數(shù)和運算符重載實現(xiàn)多態(tài)性

函數(shù)重載是實現(xiàn)多態(tài)性的一個有趣的功能。 Python 中沒有此功能,Python 中將調(diào)用最近定義的函數(shù)。

Python 中可以重載運算符。 我們知道,不同的運算符可以根據(jù)對象類型執(zhí)行不同的功能,使用 + 運算符可以清楚地看出。

發(fā)生這種情況是因為每當(dāng)使用運算符時它都會在內(nèi)部調(diào)用魔術(shù)函數(shù)。 例如,+ 運算符在內(nèi)部調(diào)用 __add__ 方法。

這個神奇的函數(shù)在其名稱前后都有雙下劃線。 魔法函數(shù)并不意味著直接調(diào)用,但我們可以為不同的類定義它們來修改不同運算符的行為。

代碼:

class A:
    def __init__(self, a):
        self.a = a

    def __add__(self, o):
        return self.a + o.a + 2

ob1 = A(5)
ob2 = A(4)
print(ob1+ob2)

輸出:

11

到此這篇關(guān)于一文帶你了解python中的多態(tài)性的文章就介紹到這了,更多相關(guān)python多態(tài)性內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python中整數(shù)的緩存機制講解

    Python中整數(shù)的緩存機制講解

    今天小編就為大家分享一篇關(guān)于Python中整數(shù)的緩存機制講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-02-02
  • python中的tcp示例詳解

    python中的tcp示例詳解

    這篇文章主要給大家介紹了關(guān)于python中tcp協(xié)議的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-12-12
  • python實現(xiàn)切割url得到域名、協(xié)議、主機名等各個字段的例子

    python實現(xiàn)切割url得到域名、協(xié)議、主機名等各個字段的例子

    今天小編就為大家分享一篇python實現(xiàn)切割url得到域名、協(xié)議、主機名等各個字段的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • Python實現(xiàn)wav和pcm的轉(zhuǎn)換方式

    Python實現(xiàn)wav和pcm的轉(zhuǎn)換方式

    這篇文章主要介紹了Python實現(xiàn)wav和pcm的轉(zhuǎn)換方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • 詳解Python的lambda函數(shù)用法

    詳解Python的lambda函數(shù)用法

    今天給大家?guī)淼氖顷P(guān)于Python的相關(guān)知識,文章圍繞著lambda函數(shù)用法展開,文中有非常詳細的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • python數(shù)據(jù)分析之員工個人信息可視化

    python數(shù)據(jù)分析之員工個人信息可視化

    這篇文章主要介紹了python數(shù)據(jù)分析之員工個人信息可視化,文中有非常詳細的代碼示例,對正在學(xué)習(xí)python可視化的小伙伴們有很好的幫助,需要的朋友可以參考下
    2021-04-04
  • 解決pycharm安裝第三方庫失敗的問題

    解決pycharm安裝第三方庫失敗的問題

    這篇文章主要介紹了pycharm安裝第三方庫失敗的解決方法,本文通過圖文實例相結(jié)合給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-05-05
  • python將處理好的圖像保存到指定目錄下的方法

    python將處理好的圖像保存到指定目錄下的方法

    今天小編就為大家分享一篇python將處理好的圖像保存到指定目錄下的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • Python-OpenCV實現(xiàn)圖像缺陷檢測的實例

    Python-OpenCV實現(xiàn)圖像缺陷檢測的實例

    本文將結(jié)合實例代碼,在Jupyter Notebook上使用Python+opencv實現(xiàn)如下圖像缺陷檢測。需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-06-06
  • 讓Django的BooleanField支持字符串形式的輸入方式

    讓Django的BooleanField支持字符串形式的輸入方式

    這篇文章主要介紹了讓Django的BooleanField支持字符串形式的輸入方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05

最新評論