亚洲区国产区激情区无码区,国产成人mv视频在线观看,国产A毛片AAAAAA,亚洲精品国产首次亮相在线

Python 基礎(chǔ)教程

Python 流程控制

Python 函數(shù)

Python 數(shù)據(jù)類型

Python 文件操作

Python 對象和類

Python 日期和時間

Python 高級知識

Python 參考手冊

Python 多態(tài)

在本教程中,我們將學(xué)習(xí)多態(tài),不同類型的多態(tài)以及如何借助示例演示在Python中實現(xiàn)它們。

什么是多態(tài)?

多態(tài)性的字面意思是指以不同形式出現(xiàn)的條件。

多態(tài)是編程中非常重要的概念。它指的是使用單個類型實體(方法,運算符或?qū)ο螅﹣肀硎静煌瑘鼍爸械牟煌愋汀?/p>

讓我們舉個實例:

示例1:加法運算符的多態(tài)

我們知道 + 運算符已在Python程序中廣泛使用。但是,它沒有單一用法。

對于整數(shù)數(shù)據(jù)類型,使用 + 運算符執(zhí)行算術(shù)加法運算。

num1 = 1
num2 = 2
print(num1+num2)

因此,以上程序輸出 3

類似地,對于字符串?dāng)?shù)據(jù)類型,使用 + 運算符進(jìn)行連接。

str1 = "Python"
str2 = "Programming"
print(str1+" "+str2)

結(jié)果,以上程序輸出 : Python Programming

在這里,我們可以看到使用運算符 + 對不同的數(shù)據(jù)類型執(zhí)行了不同的操作。這是Python中最簡單的多態(tài)現(xiàn)象之一。

Python中的函數(shù)多態(tài)

Python中有一些函數(shù)可以與多種數(shù)據(jù)類型兼容。

其中一種這樣的函數(shù)是len()函數(shù)。它可以在Python中與許多數(shù)據(jù)類型一起運行。讓我們看一下該函數(shù)的一些示例用例。

示例2:多態(tài)len()函數(shù)

print(len("nhooo"))
print(len(["Python", "Java", "C"]))
print(len({"Name": "John", "Address": "Nepal"}))

輸出結(jié)果

5
3
2

在這里,我們可以看到許多數(shù)據(jù)類型(例如字符串,列表,元組,集合和字典)都可以使用len()函數(shù)。但是,我們可以看到它返回有關(guān)特定數(shù)據(jù)類型的特定信息。

功能多態(tài)性
Python中l(wèi)en()函數(shù)中的多態(tài)性

Python中的類多態(tài)

在面向?qū)ο缶幊讨?,多態(tài)是一個非常重要的概念。

要了解有關(guān)Python中OOP的更多信息,請訪問:Python面向?qū)ο缶幊?/a>

在創(chuàng)建類方法時,我們可以使用多態(tài)的概念,因為Python允許不同的類具有相同名稱的方法。

然后,我們可以稍后通過忽略正在使用的對象來概括調(diào)用這些方法。讓我們看一個實例:

示例3:類方法中的多態(tài)

輸出結(jié)果

Meow
我是一只貓。我的名字是 Kitty. 我是 2.5 歲.
Meow
Bark
我是一只狗。 我的名字是 Fluffy. 我是  4 歲.
Bark

在這里,我們創(chuàng)建了兩個類Cat和Dog。它們具有相似的結(jié)構(gòu),并具有相同的方法名稱info()和make_sound()。

但是,請注意,我們還沒有創(chuàng)建公共的超類或以任何方式將這些類鏈接在一起。即使這樣,我們也可以將這兩個不同的對象打包到一個元組中,并使用一個公共animal變量對其進(jìn)行迭代。由于多態(tài)性,這是允許的。

多態(tài)與繼承

與其他編程語言一樣,Python中的子類也從父類繼承方法和屬性。我們可以專門針對子類重新定義某些方法和屬性,這稱為Method Overriding(方法重寫)。

多態(tài)性使我們能夠訪問與父類同名的這些覆蓋的方法和屬性。

讓我們看一個實例:

示例4:方法重寫

輸出結(jié)果

Circle
我是一個二維的形狀。
正方形的每個角都是90度。
153.93804002589985

在這里,我們可以看到在父類中使用了諸如__str __()之類的未在子類中重寫的方法。

由于多態(tài)性,Python解釋器自動識別出對象a(Square類)的fact()方法被重寫。它使用了在子類中定義的那個。

另一方面,由于對象b的fact()方法沒有被重寫,因此可以從Parent Shape類中使用它。

類多態(tài)
Python父類和子類中的多態(tài)

注意方法重載是一種無法在Python中創(chuàng)建具有相同名稱但參數(shù)不同的方法的方法。