Polimorfisme di Python dengan CONTOH

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 Kode:

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 Kode:

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 Python, Len() adalah salah satu fungsi bawaan utama.

Ia bekerja pada beberapa tipe data: daftar, tuple, string, dan kamus. Fungsi Len() mengembalikan informasi pasti yang selaras dengan banyak tipe data ini.

Gambar berikut menunjukkan bagaimana Polimorfisme dapat diterapkan di Python sehubungan dengan fungsi bawaan: –

Polimorfisme dalam Fungsi

Program berikut membantu dalam mengilustrasikan penerapan Polimorfisme di Python: -

Python Kode:

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

Polimorfisme dalam Fungsi

Dalam contoh di atas, fungsi Len (). 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 Kode:

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

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 Kode:

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.

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.

Kesimpulan

  • Polimorfisme dapat didefinisikan sebagai suatu kondisi yang terjadi dalam berbagai bentuk.
  • Seorang operator di Python membantu melakukan matematika dan beberapa tugas pemrograman lainnya.
  • 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 menawarkan beberapa kualitas yang diinginkan, seperti mempromosikan penggunaan kembali kode yang ditulis untuk kelas dan metode yang berbeda.
  • Kelas anak adalah kelas turunan, dan memperoleh atributnya dari kelas induk.
  • Polimorfisme juga dicapai melalui penggantian metode waktu proses dan kelebihan metode waktu kompilasi.
  • Polimorfisme di Python juga dicapai melalui operator overloading dan metode kelas.