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.

  • ๐Ÿ”˜ Definisi: Polimorfisme berarti "banyak bentuk," yang memungkinkan satu antarmuka untuk bertindak pada berbagai tipe data atau kelas.
  • โ˜‘๏ธ Operakelebihan beban tor: Operator + menambahkan angka sekaligus menggabungkan string, menunjukkan polimorfisme operator.
  • โœ… Fungsi bawaan: Fungsi seperti len() dapat digunakan pada string, list, dan dictionary.
  • ๐Ÿงช Metode yang ditentukan pengguna: Kelas dapat memiliki nama metode yang sama seperti area() dan perimeter() untuk bentuk yang berbeda.
  • ๏ธ Warisan: Penggantian metode memungkinkan kelas turunan untuk mendefinisikan ulang metode induk pada saat runtime.
  • ๐Ÿค– Relevansi AI: Pustaka pembelajaran mesin menggunakan kembali antarmuka bersama seperti fit() dan forward() di berbagai model.

Polimorfisme di Python

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: โ€“

Polimorfisme dalam Fungsi

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

Polimorfisme dalam Fungsi

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.

Pertanyaan Umum Demo Slot

Bebek typing memungkinkan Python Nilailah suatu objek berdasarkan metode yang dimilikinya, bukan berdasarkan tipe kelasnya. Jika suatu objek memiliki metode yang dibutuhkan, maka objek tersebut berfungsi, mengikuti gagasan "jika ia berjalan seperti bebek dan berbunyi seperti bebek, maka ia adalah bebek."

Tidak secara tradisional. Jika dua metode memiliki nama yang sama, definisi terakhir yang berlaku. Python Sebaliknya, ia mensimulasikan overloading menggunakan argumen default, *args dengan panjang variabel, atau dekorator functools.singledispatch untuk menangani berbagai tipe argumen dalam satu fungsi.

AbstracKelas dasar t, dari modul abc, mendeklarasikan metode yang harus diimplementasikan oleh setiap subkelas. Mereka memberlakukan antarmuka bersama, sehingga subkelas yang tidak terkait dapat digunakan secara polimorfik. Python menjamin bahwa masing-masing menyediakan metode yang dibutuhkan.

Polimorfisme meningkatkan kemampuan penggunaan kembali kode, fleksibilitas, dan skalabilitas. Satu fungsi atau antarmuka dapat memproses banyak tipe objek, yang mengurangi duplikasi, menyederhanakan pemeliharaan, dan memungkinkan Anda menambahkan kelas baru tanpa menulis ulang kode yang sudah menggunakannya.

Ya. Melalui kandang bebekpingKelas-kelas yang tidak terkait tetapi mengimplementasikan metode yang sama dapat digunakan secara bergantian tanpa induk yang sama. OperaOverloading tor dan fungsi bawaan seperti len() juga menyediakan polimorfisme tanpa pewarisan.

Polimorfisme muncul ketika satu fungsi memproses string, daftar, atau objek kustom, dalam driver basis data yang mengekspos API tunggal di berbagai mesin, dan dalam toolkit GUI di mana banyak widget berbagi metode draw() atau update() yang dipanggil melalui satu antarmuka.

Kerangka kerja AI bergantung pada polimorfisme. Di PyTorch, setiap model merupakan subkelas dari nn.Module dan menimpa metode forward(); di scikit-learn, estimator berbagi metode fit() dan predict(), sehingga algoritma yang berbeda berjalan melalui satu antarmuka yang konsisten dan dapat dipertukarkan.

Ya. GitHub Copilot dan asisten AI berbasis agen menghasilkan fungsi bertipe duck-type, menyarankan nilai absolut.tracmembuat kelas dasar, dan merefaktor metode yang berulang menjadi desain polimorfik dari sebuah perintah singkat. RevLihat outputnya untuk memastikan logika dan antarmuka sudah benar.

Ringkaslah postingan ini dengan: