Polymorfismi sisään Python ESIMERKKEJÄ

Mikä on polymorfismi?

Polymorfismi voidaan määritellä tilaksi, joka esiintyy monissa eri muodoissa. Se on käsite sisällä Python ohjelmointi, jossa on määritelty objekti Python voidaan käyttää eri tavoin. Sen avulla ohjelmoija voi määrittää useita menetelmiä johdettuun luokassa, ja sillä on sama nimi kuin pääluokassa. Tällaiset skenaariot tukevat menetelmän ylikuormitusta Python.

Polymorfismi sisään OperaTors

Operaattori sisään Python auttaa suorittamaan matemaattisia ja monia muita ohjelmointitehtäviä. Esimerkiksi '+'-operaattori auttaa suorittamaan yhteenlaskua kahden kokonaislukutyypin välillä Python, ja samalla tavalla sama operaattori auttaa merkkijonojen ketjuttamisessa Python ohjelmointi.

Otetaan esimerkki + (plus) operaattori sisään Python näyttää polymorfismin sovelluksen in Python kuten alla:

Python Koodi:

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

lähtö:

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'>

Yllä olevaa esimerkkiä voidaan pitää myös esimerkkinä käyttäjän ylikuormituksesta.

Polymorfismi käyttäjän määrittämissä menetelmissä

Käyttäjän määrittämä menetelmä Python ohjelmointikieli ovat käyttäjän luomia menetelmiä, jotka ilmoitetaan avainsanalla def funktion nimen kanssa.

Polymorfismi vuonna Python ohjelmointikieli saavutetaan menetelmän ylikuormituksen ja ohituksen kautta. Python määrittää menetelmät def-avainsanalla ja samalla nimellä sekä ala- että yläluokassa.

Otetaan seuraava esimerkki alla olevan kuvan mukaisesti: –

Python Koodi:

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

lähtö:

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

Yllä olevassa koodissa on kaksi käyttäjän määrittämää menetelmää, ympyrä- ja neliökuokissa määritelty ympyrä ja alue.

Kuten yllä on esitetty, sekä ympyräluokka että neliöluokka kutsuvat saman menetelmän nimen, joka näyttää polymorfismin ominaisuuden vaaditun lähdön toimittamiseksi.

Polymorfismi funktioissa

Sisäänrakennetut toiminnot Python on suunniteltu ja tehty yhteensopiviksi useiden tietotyyppien suorittamiseen. sisään Python, Len() on yksi tärkeimmistä sisäänrakennetuista toiminnoista.

Se toimii useilla tietotyypeillä: luettelo, monikko, merkkijono ja sanakirja. Len ()-funktio palauttaa näiden monien tietotyyppien kanssa kohdistetut määrätyt tiedot.

Seuraava kuva näyttää, kuinka polymorfismia voidaan soveltaa Python sisäänrakennettujen toimintojen suhteen: –

Polymorfismi funktioissa

Seuraava ohjelma auttaa havainnollistamaan polymorfismin soveltamista Python: -

Python Koodi:

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"}))

lähtö:

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

Polymorfismi funktioissa

Yllä olevassa esimerkissä Len () -funktio Python suorittaa polymorfismin merkkijono-, luettelo- ja sanakirjatietotyypeille.

Polymorfismi ja perinnöllisyys

Perintö sisään Python voidaan määritellä ohjelmointikonseptiksi, jossa lapsiluokka peri ominaisuudet toisesta perusluokasta Python.

Avaimia on kaksi Python menetelmän ohitukseksi ja menetelmän ylikuormitukseksi kutsuttuja käsitteitä.

  • Menetelmän ylikuormituksessa, Python tarjoaa mahdollisuuden luoda menetelmiä, joilla on sama nimi, erilaisten toimintojen suorittamiseksi tai suorittamiseksi tietyssä koodinpalassa. Se mahdollistaa menetelmien ylikuormituksen ja käyttää niitä erilaisten tehtävien suorittamiseen yksinkertaisemmin.
  • Menetelmän ohituksessa Python ohittaa arvon, jolla on samanlainen nimi vanhempien ja lasten luokissa.

Otetaan seuraava esimerkki polymorfismista ja perinnöllisyydestä alla esitetyllä tavalla: –

Python Koodi:

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

lähtö:

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

Yllä olevassa koodissa menetelmillä on sama nimi, joka on määritelty init-metodiksi ja area1-metodiksi. Luokan neliön ja suorakulmion objektia käytetään sitten kutsumaan kaksi menetelmää suorittamaan erilaisia ​​tehtäviä ja antamaan neliön ja suorakulmion alueen tulos.

Polymorfismi luokkamenetelmien kanssa

Python ohjelmoimalla ohjelmoijat voivat saavuttaa polymorfismin ja menetelmän ylikuormituksen luokkamenetelmillä. Eri luokat sisällä Python voi olla menetelmiä, jotka on ilmoitettu samalla nimellä Python koodi.

In Python, voidaan määrittää kaksi eri luokkaa. Yksi olisi aliluokka, ja se saa attribuutit toisesta määritellystä luokasta, jota kutsutaan yläluokiksi.

Seuraava esimerkki havainnollistaa polymorfismin käsitettä luokkamenetelmillä: –

Python Koodi:

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

lähtö:

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.

Yllä olevassa koodissa kaksi eri luokkaa nimeltä flipkart ja amazon käyttävät samoja menetelmänimiä info ja init tarjotakseen vastaavat hintatarjoukset tuotteesta ja havainnollistaakseen polymorfismin käsitettä Python.

Ero menetelmän ylikuormituksen ja käännösajan polymorfismin välillä

Käännösajan polymorfismissa kääntäjä Python ohjelma ratkaisee puhelun. Käännösajan polymorfismi saavutetaan menetelmän ylikuormituksen kautta.

Python kääntäjä ei ratkaise kutsuja ajon aikana polymorfismin vuoksi. Se luokitellaan myös menetelmän ohitukseksi, jossa samoilla menetelmillä on samanlaisia ​​allekirjoituksia tai ominaisuuksia, mutta ne ovat osa eri luokkia.

Yhteenveto

  • Polymorfismi voidaan määritellä tilaksi, joka esiintyy monissa eri muodoissa.
  • Operaattori sisään Python auttaa suorittamaan matemaattisia ja monia muita ohjelmointitehtäviä.
  • Käyttäjän määrittämä menetelmä Python ohjelmointikieli ovat käyttäjän luomia menetelmiä, jotka ilmoitetaan avainsanalla def funktion nimen kanssa.
  • Polymorfismi sisään Python tarjoaa useita toivottavia ominaisuuksia, kuten se edistää eri luokkiin ja menetelmiin kirjoitettujen koodien uudelleenkäytettävyyttä.
  • Lapsiluokka on johdettu luokka, ja se saa attribuuttinsa pääluokasta.
  • Polymorfismi saavutetaan myös ajonaikaisen menetelmän ohituksen ja käännösajan menetelmän ylikuormituksen avulla.
  • Polymorfismi sisään Python saavutetaan myös operaattorin ylikuormituksella ja luokkamenetelmillä.

Tiivistä tämä viesti seuraavasti: