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())

產量

緯!喵!

作者