Polimorfisme Python

Python minangka basa serbaguna sing uga kalebu pemrograman berorientasi obyek.

Ing artikel iki kita bakal katon ing Python polymorphism

3 menit

Nella programmazione python, il polimorfismo assume un’importanza cruciale, consentendo di scrivere clean code favorendo tempi di sviluppo, e semplificando la manutenzione.

Polimorfisme Python

Apa polimorfisme: tembung polimorfemis tegesipun gadhah wujud ingkang kathah. Nello pangembangan piranti lunak, polimorfisme tegese nemtokake macem-macem jinis fungsi, nanging kabeh kanthi jeneng sing padha. Bentenane utama yaiku jinis data lan jumlah argumen sing digunakake ing fungsi kasebut.

Contoh fungsi polimorfik bawaan:

# 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]))

output

5 3

Contoh fungsi polimorfik: 

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

output

5
9

Polimorfisme kanthi metode kelas: 

Il codice seguente mostra come nella programmazione Python è possibile usare due tipi di classi diverse, nello stesso modo. Creiamo un ciclo per scorrere una tupla di oggetti. Quindi chiamiamo i metodi senza preoccuparci di quale tipo di classe sia ogni oggetto. Supponiamo che questi metodi esistano effettivamente in ogni classe. 

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

output

New Delhi minangka ibukutha India.
Hindi minangka basa sing paling umum ing India.
India minangka negara berkembang.
Washington, DC minangka ibukutha AS.
Inggris minangka basa utami ing AS.
AS minangka negara maju.

Polimorfisme kanthi warisan: 

In programmazione Python, il polimorfismo ci consente di definire metodi nella classe figlia che hanno lo stesso nome dei metodi nella classe padre. Nell’ereditarietà, la classe figlia eredita i metodi dalla classe padre. Tuttavia, è possibile modificare un metodo in una classe figlia che ha ereditato dalla classe padre. Ciò è particolarmente utile nei casi in cui il metodo ereditato dalla classe padre non si adatta perfettamente alla classe figlia. In tali casi, reimplementiamo il metodo nella classe figlia. Questo processo di reimplementazione di un metodo nella classe figlia è noto come Metode Overriding .  

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

output

Ana akeh jinis manuk.
Umume manuk bisa mabur nanging sawetara ora bisa.
Ana akeh jinis manuk.
Sparrows bisa mabur.
Ana akeh jinis manuk.
Kerang ora bisa mabur.

 
Polimorfisme kanthi fungsi lan obyek: 

È anche possibile creare una funzione che può accettare qualsiasi oggetto, consentendo il polimorfismo. In questo esempio di programmazione python, creiamo una funzione chiamata “func()” che accetterà un oggetto che chiameremo “obj”. Sebbene stiamo usando il nome “obj”, qualsiasi oggetto istanziato potrà essere chiamato in questa funzione. Quindi, diamo alla funzione qualcosa da fare che utilizza l’oggetto “obj” che le abbiamo passato. In questo caso, chiamiamo i tre metodi, vale a dire, capital(), Language() e type(), ognuno dei quali è definito nelle due classi “India” e “USA”. Quindi, creiamo le istanziazioni di entrambe le classi “India” e “USA”, se non le abbiamo già. Con queste, possiamo chiamare la loro azione utilizzando la stessa funzione func(): 

def func(obj):
    obj.capital()
    obj.language()
    obj.type()
 
obj_ind = India()
obj_usa = USA()
 
func(obj_ind)
func(obj_usa)

  
Kode: Ngleksanakake polimorfisme kanthi fungsi 
 

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)

output

New Delhi minangka ibukutha India.
Hindi minangka basa sing paling umum ing India.
India minangka negara berkembang.
Washington, DC minangka ibukutha AS.
Inggris minangka basa utami ing AS.
AS minangka negara maju.

Contoh sederhana polimorfisme python: 

polimorfisme Python utilizzando l’ereditarietà e l’override del metodo:

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

output

woof! Meong!

Autore