Polimorfizam u Python s PRIMJERIMA

Što je polimorfizam?

Polimorfizam se može definirati kao stanje koje se javlja u mnogo različitih oblika. To je koncept u Python programiranje u kojem je objekt definiran u Python mogu se koristiti na različite načine. Programeru omogućuje definiranje više metoda u izvedenoj klasi, a ima isto ime kao i u nadređenoj klasi. Takvi scenariji podržavaju preopterećenje metoda u Python.

Polimorfizam u Operaulagatelji

Operater u Python pomaže u obavljanju matematičkih i nekoliko drugih programskih zadataka. Na primjer, operator '+' pomaže u izvođenju zbrajanja između dva tipa cijelih brojeva Python, a na isti način, isti operator pomaže u ulančavanju nizova Python programiranje.

Uzmimo primjer + (plus) operater u Python za prikaz primjene polimorfizma u Python kao što je prikazano u nastavku:

Python Kodirati:

p = 55
q = 77
r = 9.5
g1 = "Guru"
g2 = "99!"
print("the sum of two numbers",p + q)
print("the data type of result is",type(p + q))
print("The sum of two numbers",q + r)
print("the data type of result is", type (q + r))
print("The concatenated string is", g1 + g2)
print("The data type of two strings",type(g1 + g2))

Izlaz:

the sum of two numbers 132
the data type of result is <class 'int'>

The sum of the two numbers 86.5
the data type of result is <class 'float'>

The concatenated string is Guru99!
The data type of two strings <class 'str'>

Gore navedeni primjer također se može smatrati primjerom preopterećenja operatora.

Polimorfizam u korisnički definiranim metodama

Korisnički definirana metoda u Python programski jezik su metode koje sam kreira, a deklarira se pomoću ključne riječi def uz naziv funkcije.

Polimorfizam u Python programski jezik se postiže preopterećenjem i nadjačavanjem metode. Python definira metode s ključnom riječi def i istim imenom u podređenoj i nadređenoj klasi.

Uzmimo sljedeći primjer kao što je prikazano u nastavku: –

Python Kodirati:

from math
import pi
class square:
    def __init__(self, length):
    self.l = length
def perimeter(self):
    return 4 * (self.l)
def area(self):
    return self.l * self.l
class Circle:
    def __init__(self, radius):
    self.r = radius
def perimeter(self):
    return 2 * pi * self.r
def area(self):
    return pi * self.r * * 2
# Initialize the classes
sqr = square(10)
c1 = Circle(4)
print("Perimeter computed for square: ", sqr.perimeter())
print("Area computed for square: ", sqr.area())
print("Perimeter computed for Circle: ", c1.perimeter())
print("Area computed for Circle: ", c1.area())

Izlaz:

Perimeter computed for square:  40
Area computed for square:  100
Perimeter computed for Circle:  25.132741228718345
Area computed for Circle:  50.26548245743669

U gornjem kodu postoje dvije korisnički definirane metode, opseg i površina, definirane u klasama kruga i kvadrata.

Kao što je gore prikazano, i klasa kruga i klasa kvadrata pozivaju se na isto ime metode prikazujući karakteristiku polimorfizma za isporuku traženog rezultata.

Polimorfizam u funkcijama

Ugrađene funkcije u Python su dizajnirani i napravljeni kompatibilni za izvršavanje nekoliko vrsta podataka. U Python, Len() jedna je od ključnih ugrađenih funkcija.

Radi na nekoliko tipova podataka: popis, tuple, niz i rječnik. Funkcija Len () vraća određene informacije usklađene s tim brojnim vrstama podataka.

Sljedeća slika pokazuje kako se polimorfizam može primijeniti u Python u odnosu na ugrađene funkcije: –

Polimorfizam u funkcijama

Sljedeći program pomaže u ilustriranju primjene polimorfizma u Python: -

Python Kodirati:

print ("The length of string Guru99 is ",len("Guru99"))
print("The length of list is ",len(["Guru99","Example","Reader"]))
print("The length of dictionary is ",len({"Website name":"Guru99","Type":"Education"}))

Izlaz:

The length of string Guru99 is 6
The length of the list is 3
The length of the dictionary is 2

Polimorfizam u funkcijama

U gornjem primjeru, Len () funkcija od Python izvodi polimorfizam za tipove podataka niza, popisa i rječnika.

Polimorfizam i nasljeđivanje

Nasljedstvo u Python može se definirati kao koncept programiranja u kojem definirana podređena klasa nasljeđuje svojstva od druge osnovne klase prisutne u Python.

Postoje dva ključa Python koncepti koji se nazivaju nadjačavanje metode i preopterećenje metode.

  • Kod preopterećenja metode, Python pruža značajku stvaranja metoda koje imaju isti naziv za izvođenje ili izvršavanje različitih funkcija u danom dijelu koda. Omogućuje preopterećenje metoda i koristi ih za obavljanje različitih zadataka na jednostavniji način.
  • U nadjačavanju metode, Python nadjačava vrijednost koja dijeli slično ime u roditeljskim i podređenim klasama.

Uzmimo sljedeći primjer polimorfizma i nasljeđivanja kao što je prikazano u nastavku: –

Python Kodirati:

class baseclass:
    def __init__(self, name):
    self.name = name
def area1(self):
    pass
def __str__(self):
    return self.name
class rectangle(baseclass):
    def __init__(self, length, breadth):
    super().__init__("rectangle")
self.length = length
self.breadth = breadth
def area1(self):
    return self.length * self.breadth
class triangle(baseclass):
    def __init__(self, height, base):
    super().__init__("triangle")
self.height = height
self.base = base
def area1(self):
    return (self.base * self.height) / 2
a = rectangle(90, 80)
b = triangle(77, 64)
print("The shape is: ", b)
print("The area of shape is", b.area1())
print("The shape is:", a)
print("The area of shape is", a.area1())

Izlaz:

The shape is: a triangle
The area of a shape is 2464.0

The shape is: a rectangle
The area of a shape is 7200

U gornjem kodu, metode imaju isto ime definirano kao metoda init i metoda area1. Objekt klase kvadrat i pravokutnik zatim se koriste za pozivanje dviju metoda za izvođenje različitih zadataka i davanje izlaznih podataka površine kvadrata i pravokutnika.

Polimorfizam s metodama klase

Korištenje električnih romobila ističe Python programiranje omogućuje programerima postizanje polimorfizma i preopterećenja metoda metodama klase. Različite klase u Python mogu imati metode koje su deklarirane pod istim imenom u cijelom Python kodirati.

In Python, mogu se definirati dvije različite klase. Jedna bi bila klasa dijete i ona izvodi atribute iz druge definirane klase koja se naziva roditeljska klasa.

Sljedeći primjer ilustrira koncept polimorfizma s metodama klase: –

Python Kodirati:

class amazon:
    def __init__(self, name, price):
    self.name = name
self.price = price
def info(self):
    print("This is product and am class is invoked. The name is {self.name}. This costs {self.price} rupees.")
class flipkart:
    def __init__(self, name, price):
    self.name = name
self.price = price
def info(self):
    print(f "This is product and fli class is invoked. The name is {self.name}. This costs {self.price} rupees.")
FLP = flipkart("Iphone", 2.5)
AMZ = amazon("Iphone", 4)
for product1 in (FLP, AMZ):
    product1.info()

Izlaz:

This is a product, and fli class is invoked. The name is iPhone, and this costs 2.5 rupees.
This is a product, and am class is invoked. The name is iPhone, and this costs 4 rupees.

U gornjem kodu, dvije različite klase nazvane kao flipkart i amazon koriste istu metodu naziva info i init za pružanje odgovarajućih kotacija cijena proizvoda i daljnju ilustraciju koncepta polimorfizma u Python.

Razlika između preopterećenja metode i polimorfizma tijekom kompajliranja

U polimorfizmu vremena kompajliranja, prevodilac Python program rješava poziv. Polimorfizam tijekom kompajliranja postiže se preopterećenjem metode.

Korištenje električnih romobila ističe Python prevodilac ne rješava pozive tijekom vremena izvođenja za polimorfizam. Također se klasificira kao nadjačavanje metode pri čemu iste metode nose slične potpise ili svojstva, ali čine dio različitih klasa.

rezime

  • Polimorfizam se može definirati kao stanje koje se javlja u mnogo različitih oblika.
  • Operater u Python pomaže u obavljanju matematičkih i nekoliko drugih programskih zadataka.
  • Korisnički definirana metoda u Python programski jezik su metode koje sam kreira, a deklarira se pomoću ključne riječi def uz naziv funkcije.
  • Polimorfizam u Python nudi nekoliko poželjnih kvaliteta, kao što je promicanje ponovne upotrebe kodova napisanih za različite klase i metode.
  • Klasa dijete je izvedena klasa i dobiva svoje atribute od roditeljske klase.
  • Polimorfizam se također postiže nadjačavanjem metode u vremenu izvođenja i preopterećenjem metode u vrijeme kompajliranja.
  • Polimorfizam u Python također se postiže preopterećenjem operatora i metodama klase.