Polimorfisme di Python dengan CONTOH
โก Ringkasan Cerdas
Polimorfisme di Python Memungkinkan satu antarmuka untuk bekerja dengan objek dari berbagai tipe, sehingga metode atau operator yang sama berperilaku berbeda tergantung pada objeknya. Hal ini muncul melalui overloading operator, fungsi bawaan, metode yang ditentukan pengguna, dan pewarisan di seluruh antarmuka. Python program.

Apa itu Polimorfisme?
Polimorfisme dapat didefinisikan sebagai suatu kondisi yang terjadi dalam berbagai bentuk. Ini adalah sebuah konsep di Python pemrograman di mana suatu objek didefinisikan Python dapat digunakan dengan cara yang berbeda. Hal ini memungkinkan pemrogram untuk mendefinisikan beberapa metode di kelas turunan, dan memiliki nama yang sama dengan yang ada di kelas induk. Skenario seperti itu mendukung metode yang kelebihan muatan Python.
Polimorfisme di Operatorso
Seorang operator di Python membantu melakukan tugas matematika dan beberapa tugas pemrograman lainnya. Misalnya, operator '+' membantu dalam melakukan penjumlahan antara dua tipe integer dalam Python, dan dengan cara yang sama, operator yang sama membantu dalam menggabungkan string dalam Python pemrograman.
Mari kita ambil contoh + (plus) operator di Python untuk menampilkan penerapan Polimorfisme di Python seperti yang ditunjukkan di bawah ini:
Python Code:
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))
Keluaran:
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'>
Contoh di atas juga dapat dianggap sebagai contoh kelebihan beban operator.
Polimorfisme dalam metode yang ditentukan pengguna
Metode yang ditentukan pengguna di Python bahasa pemrograman adalah metode yang dibuat pengguna, dan dideklarasikan menggunakan kata kunci def dengan nama fungsinya.
Polimorfisme di Python bahasa pemrograman dicapai melalui metode kelebihan beban dan penggantian. Python mendefinisikan metode dengan kata kunci def dan dengan nama yang sama di kelas anak dan induk.
Mari kita ambil contoh berikut seperti yang ditunjukkan di bawah ini: โ
Python Code:
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())
Keluaran:
Perimeter computed for square: 40 Area computed for square: 100 Perimeter computed for Circle: 25.132741228718345 Area computed for Circle: 50.26548245743669
Dalam kode di atas, ada dua metode yang ditentukan pengguna, keliling dan luas, yang ditentukan dalam kelas lingkaran dan persegi.
Seperti yang ditunjukkan di atas, kelas lingkaran dan kelas persegi memanggil nama metode yang sama yang menampilkan karakteristik Polimorfisme untuk memberikan keluaran yang diperlukan.
Polimorfisme dalam Fungsi
Fungsi bawaan di Python dirancang dan dibuat kompatibel untuk mengeksekusi beberapa tipe data. Di dalam Pythonlen() adalah salah satu fungsi bawaan yang penting.
Fungsi ini bekerja pada beberapa tipe data: list, tuple, string, dan dictionary. Fungsi len() mengembalikan informasi pasti yang sesuai dengan berbagai tipe data tersebut.
Gambar berikut menunjukkan bagaimana Polimorfisme dapat diterapkan di Python sehubungan dengan fungsi bawaan: โ
Program berikut membantu dalam mengilustrasikan penerapan Polimorfisme di Python: -
Python Code:
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"}))
Keluaran:
The length of string Guru99 is 6 The length of the list is 3 The length of the dictionary is 2
Pada contoh di atas, fungsi len() dari Python melakukan Polimorfisme untuk tipe data string, daftar, dan kamus.
Polimorfisme dan Warisan
Warisan di Python dapat didefinisikan sebagai konsep pemrograman di mana kelas anak mendefinisikan properti warisan dari kelas dasar lain yang ada di dalamnya Python.
Ada dua kunci Python konsep yang disebut dengan penggantian metode dan kelebihan metode.
- Dalam metode kelebihan beban, Python menyediakan fitur untuk membuat metode yang memiliki nama yang sama untuk menjalankan atau menjalankan fungsi berbeda dalam potongan kode tertentu. Hal ini memungkinkan untuk membebani metode secara berlebihan dan menggunakannya untuk melakukan tugas yang berbeda dengan cara yang lebih sederhana.
- Dalam penggantian Metode, Python mengganti nilai yang memiliki nama serupa di kelas induk dan anak.
Mari kita ambil contoh Polimorfisme dan pewarisan berikut seperti yang ditunjukkan di bawah ini: โ
Python Code:
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())
Keluaran:
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
Dalam kode di atas, metode memiliki nama yang sama yang didefinisikan sebagai metode init dan metode area1. Objek kelas persegi dan persegi panjang kemudian digunakan untuk memanggil dua metode untuk melakukan tugas yang berbeda dan memberikan keluaran luas persegi dan persegi panjang.
Polimorfisme dengan Metode Kelas
The Python pemrograman memungkinkan pemrogram untuk mencapai Polimorfisme dan kelebihan metode dengan metode kelas. Kelas yang berbeda di Python dapat memiliki metode yang dideklarasikan dengan nama yang sama di seluruh Python kode.
In Python, dua kelas berbeda dapat didefinisikan. Salah satunya adalah kelas anak, dan ia memperoleh atribut dari kelas lain yang ditentukan yang disebut sebagai kelas induk.
Contoh berikut mengilustrasikan konsep Polimorfisme dengan metode kelas: โ
Python Code:
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()
Keluaran:
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.
Pada kode di atas, dua kelas berbeda bernama flipkart dan amazon menggunakan nama metode yang sama info dan init untuk memberikan kutipan harga masing-masing produk dan selanjutnya menggambarkan konsep Polimorfisme di Python.
Perbedaan antara Metode kelebihan beban dan Polimorfisme waktu kompilasi
Dalam Polimorfisme waktu kompilasi, kompiler dari Python program menyelesaikan panggilan tersebut. Polimorfisme waktu kompilasi dicapai melalui kelebihan metode.
The Python kompiler tidak menyelesaikan panggilan selama run time untuk polimorfisme. Hal ini juga diklasifikasikan sebagai metode overriding dimana metode yang sama membawa tanda tangan atau properti yang serupa, namun mereka merupakan bagian dari kelas yang berbeda.


