Polimorfizmus be Python PÉLDÁVAL
Mi a polimorfizmus?
A polimorfizmust olyan állapotként határozhatjuk meg, amely sokféle formában fordul elő. Ez egy fogalom benne Python programozás, ahol egy objektum van definiálva Python többféleképpen használhatók. Lehetővé teszi a programozó számára, hogy több metódust definiáljon egy származtatott osztályban, és ugyanaz a neve, mint a szülő osztályban. Az ilyen forgatókönyvek támogatják a metódusok túlterhelését Python.
Polimorfizmus be Operatorzok
Be egy operátor Python segít matematikai és számos más programozási feladat elvégzésében. Például a '+' operátor segít két egész számtípus összeadásában Python, és ugyanígy ugyanaz az operátor segít a karakterláncok összefűzésében Python programozás.
Vegyünk egy példát a + (plusz) operátor Python a polimorfizmus alkalmazásának megjelenítéséhez Python az alábbiak szerint:
Python Kód:
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))
output:
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'>
A fenti példa a kezelő túlterhelésének példájának is tekinthető.
Polimorfizmus a felhasználó által definiált módszerekben
Egy felhasználó által definiált módszer a Python A programozási nyelv olyan metódus, amelyet a felhasználó hoz létre, és a def kulcsszó használatával deklarálódik a függvény nevével.
Polimorfizmus a Python programozási nyelv módszer túlterheléssel és felülírással érhető el. Python metódusokat határoz meg def kulcsszóval és azonos névvel a gyermek és a szülő osztályban.
Vegyük a következő példát az alábbiak szerint: -
Python Kód:
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())
output:
Perimeter computed for square: 40 Area computed for square: 100 Perimeter computed for Circle: 25.132741228718345 Area computed for Circle: 50.26548245743669
A fenti kódban két felhasználó által definiált metódus található, a kerület és a terület, kör és négyzet osztályokban definiálva.
Amint fentebb látható, a kör osztály és a négyzet osztály is ugyanazt a metódusnevet hívja meg, megjelenítve a polimorfizmus jellemzőit a szükséges kimenet biztosításához.
Polimorfizmus a függvényekben
A beépített funkciók Python több adattípus végrehajtására tervezték és kompatibilissé teszik. In Python, Len()
az egyik legfontosabb beépített funkció.
Több adattípuson működik: lista, sor, karakterlánc és szótár. A Len () függvény határozott információkat ad vissza ehhez a sok adattípushoz igazítva.
Az alábbi ábra bemutatja, hogyan alkalmazható a polimorfizmus Python a beépített funkciókkal kapcsolatban: –
Az alábbi program segít a polimorfizmus alkalmazásának szemléltetésében Python: -
Python Kód:
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"}))
output:
The length of string Guru99 is 6 The length of the list is 3 The length of the dictionary is 2
A fenti példában a Len () függvénye Python polimorfizmust hajt végre karakterlánc-, lista- és szótáradattípusok esetén.
Polimorfizmus és öröklődés
Öröklés be Python úgy definiálható, mint egy programozási koncepció, amelyben egy gyermekosztály definiált örökli a tulajdonságokat egy másik alaposztálytól, amely benne van Python.
Két kulcs van Python módszer felülbírálásnak és módszer túlterhelésnek nevezett fogalmak.
- A módszer túlterhelésében Python biztosítja az azonos nevű metódusok létrehozásának lehetőségét, amelyek egy adott kódrészletben különböző funkciókat hajtanak végre vagy hajtanak végre. Lehetővé teszi a metódusok túlterhelését, és különböző feladatok egyszerűbb végrehajtására használja őket.
- A módszer felülbírálásánál Python felülírja azt az értéket, amely hasonló nevet használ szülői és gyermekosztályokban.
Vegyük a következő példát a polimorfizmusra és az öröklődésre, az alábbiak szerint: –
Python Kód:
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())
output:
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
A fenti kódban a metódusoknak ugyanaz a neve, mint az init metódus és a area1 metódus. A négyzet és a téglalap osztály objektuma ezután a két módszer meghívására szolgál különböző feladatok végrehajtására, és a négyzet és a téglalap területének kimenetének biztosítására.
Polimorfizmus az osztálymódszerekkel
A Python A programozás lehetővé teszi a programozóknak, hogy osztálymetódusokkal polimorfizmust és metódus-túlterhelést érjenek el. A különböző osztályok Python rendelkezhetnek olyan metódusokkal, amelyek ugyanazon a néven vannak deklarálva a Python kód.
In Python, két különböző osztály definiálható. Az egyik gyermekosztály lenne, és attribútumokat származtat egy másik meghatározott osztályból, amelyet szülő osztálynak neveznek.
A következő példa szemlélteti a polimorfizmus fogalmát osztálymetódusokkal: –
Python Kód:
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()
output:
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.
A fenti kódban két különböző osztály, a flipkart és az amazon ugyanazt az info és init nevű módszert használja, hogy megfelelő árajánlatot adjon a termékről, és jobban illusztrálja a polimorfizmus fogalmát. Python.
Különbség a módszer túlterhelése és a fordítási idejű polimorfizmus között
A fordítási idejű polimorfizmusban a fordító a Python program megoldja a hívást. A fordítási idejű polimorfizmus a metódusok túlterhelésén keresztül valósul meg.
A Python A fordító nem oldja meg a hívásokat futási idő alatt polimorfizmus miatt. Metódus felülbírálásnak is minősül, ahol ugyanazok a módszerek hasonló aláírásokat vagy tulajdonságokat hordoznak, de különböző osztályok részét képezik.
Összegzésként
- A polimorfizmust olyan állapotként határozhatjuk meg, amely sokféle formában fordul elő.
- Be egy operátor Python segít matematikai és számos más programozási feladat elvégzésében.
- Egy felhasználó által definiált módszer a Python A programozási nyelv olyan metódus, amelyet a felhasználó hoz létre, és a def kulcsszó használatával deklarálódik a függvény nevével.
- Polimorfizmus be Python számos kívánatos tulajdonságot kínál, például elősegíti a különböző osztályokhoz és metódusokhoz írt kódok újrafelhasználhatóságát.
- A gyermekosztály származtatott osztály, és attribútumait a szülőosztálytól kapja.
- A polimorfizmus a futásidejű módszer felülbírálásával és a fordítási idejű módszer túlterhelésével is elérhető.
- Polimorfizmus be Python operátor túlterheléssel és osztálymódszerekkel is elérhető.