Python多態性、Python物件導向程式設計
Python 是一種非常通用的語言,也包含物件導向程式設計。
在這篇文章中,我們將了解Python的多態性
3 minuti
在程式設計中 蟒蛇,多態性至關重要,它允許您編寫乾淨的程式碼,縮短開發時間並簡化維護。
Python多型
什麼是多態性: 多態性這個詞意味著有多種形式。尼洛 軟體開發,多態意味著定義不同類型的函數,但都具有相同的名稱。主要區別在於函數中使用的資料類型和參數數量。
內建多態函數的範例:
# Python program to demonstrate in-built poly-
# morphic functions
# len() being used for a string
print(len("geeks"))
# len() being used for a list
print(len([10, 20, 30]))
產量
5 3
多態函數的範例:
# A simple Python function to demonstrate
# Polymorphism
def add(x, y, z = 0):
return x + y+z
# Driver code
print(add(2, 3))
print(add(2, 3, 4))
產量
5
9
類別方法的多態性:
下面的程式碼展示如何在程式設計中 蟒蛇 可以以相同的方式使用兩種類型的不同類別。讓我們建立一個循環來迭代物件元組。然後我們呼叫這些方法,而不必擔心每個物件是什麼類型的類別。我們假設這些方法實際上存在於每個類別中。
class India():
def capital(self):
print("New Delhi is the capital of India.")
def language(self):
print("Hindi is the most widely spoken language of India.")
def type(self):
print("India is a developing country.")
class USA():
def capital(self):
print("Washington, D.C. is the capital of USA.")
def language(self):
print("English is the primary language of USA.")
def type(self):
print("USA is a developed country.")
obj_ind = India()
obj_usa = USA()
for country in (obj_ind, obj_usa):
country.capital()
country.language()
country.type()
產量
新德里是印度的首都。
印地語是印度使用最廣泛的語言。
印度是一個發展中國家。
華盛頓特區是美國的首都。
英語是美國的主要語言。
美國是一個已開發國家。
多態性與繼承:
在程式設計中 蟒蛇,多態性允許我們在子類別中定義與父類別中的方法同名的方法。在繼承中,子類別繼承父類別的方法。但是,您可以修改子類別中從父類別繼承的方法。這在從父類別繼承的方法不完全適合子類別的情況下特別有用。在這種情況下,我們在子類別中重新實作該方法。在子類別中重新實作方法的過程稱為 方法覆蓋 .
class Bird:
def intro(self):
print("There are many types of birds.")
def flight(self):
print("Most of the birds can fly but some cannot.")
class sparrow(Bird):
def flight(self):
print("Sparrows can fly.")
class ostrich(Bird):
def flight(self):
print("Ostriches cannot fly.")
obj_bird = Bird()
obj_spr = sparrow()
obj_ost = ostrich()
obj_bird.intro()
obj_bird.flight()
obj_spr.intro()
obj_spr.flight()
obj_ost.intro()
obj_ost.flight()
產量
鳥類有很多種。
大多數鳥能飛,但有些不能。
鳥類有很多種。
麻雀會飛。
鳥類有很多種。
牡蠣不能飛。
函數和物件的多態性:
您也可以建立一個可以接受任何物件的函數,從而實現多態性。在這個程式設計範例中 蟒蛇,讓我們建立一個名為「func()」的函數,它將接受一個我們稱為「obj」的物件。儘管我們使用名稱“obj”,但可以在此函數中呼叫任何實例化物件。因此,讓我們使用傳遞給它的“obj”物件為函數指定一些操作。在本例中,我們呼叫三個方法,即 Capital()、Language() 和 type(),每個方法都在「India」和「USA」兩個類別中定義。接下來,讓我們實例化「印度」和「美國」類別(如果我們還沒有)。有了這些,我們可以使用相同的 func() 函數來呼叫它們的運算:
def func(obj):
obj.capital()
obj.language()
obj.type()
obj_ind = India()
obj_usa = USA()
func(obj_ind)
func(obj_usa)
抄本: 用函數實現多態性
class India():
def capital(self):
print("New Delhi is the capital of India.")
def language(self):
print("Hindi is the most widely spoken language of India.")
def type(self):
print("India is a developing country.")
class USA():
def capital(self):
print("Washington, D.C. is the capital of USA.")
def language(self):
print("English is the primary language of USA.")
def type(self):
print("USA is a developed country.")
def func(obj):
obj.capital()
obj.language()
obj.type()
obj_ind = India()
obj_usa = USA()
func(obj_ind)
func(obj_usa)
產量
新德里是印度的首都。
印地語是印度使用最廣泛的語言。
印度是一個發展中國家。
華盛頓特區是美國的首都。
英語是美國的主要語言。
美國是一個已開發國家。
python多態性的簡單例子:
多態性 蟒蛇 使用繼承和方法重寫:
class Animal:
def speak(self):
raise NotImplementedError("Subclass must implement this method")
class Dog(Animal):
def speak(self):
return "Woof!"
class Cat(Animal):
def speak(self):
return "Meow!"
# Create a list of Animal objects
animals = [Dog(), Cat()]
# Call the speak method on each object
for animal in animals:
print(animal.speak())
產量
緯!喵!