Apa itu Polimorfisme di Python? Polimorfisme Dijelaskan dengan Contoh

Diterbitkan: 2021-03-05

Daftar isi

pengantar

Python adalah bahasa pemrograman tingkat tinggi, ditafsirkan, dan bersumber terbuka. Itu telah mendapatkan banyak fokus di antara banyak programmer dan pengembang karena mendukung perpustakaan yang membantu dalam banyak tugas seperti analisis data eksplorasi, pemrograman GUI, dll. Juga, pemrograman dengan python sangat menarik.

Kita akan membahas fitur menarik dari python di artikel ini. Jadi mari kita mulai!

Apa itu Polimorfisme?

Kata polimorfisme berasal dari kata Yunani poly (berarti banyak), dan morphism (bentuk). Ini berarti satu nama fungsi atau nama metode dapat memiliki beberapa bentuk. Dan ini memenuhi keinginan untuk menghindari duplikasi kode dalam implementasinya.

Tetapi polimorfisme dalam python sedikit berbeda dengan polimorfisme dalam bahasa pemrograman lain. Bahasa pemrograman seperti java dan c++ mendukung polimorfisme waktu kompilasi (metode overloading). Dalam metode overloading, beberapa metode dapat memiliki nama metode yang sama tetapi berbeda dalam tanda tangan parameternya. Fitur ini tidak didukung oleh python. Jika beberapa metode memiliki fungsi yang sama, maka implementasi fungsi terbaru akan menimpa implementasi fungsi sebelumnya.

Fungsi Polimorfisme

Fungsi polimorfisme dalam python dapat dikategorikan menjadi dua polimorfisme yang ditentukan pengguna dan polimorfisme yang telah ditentukan sebelumnya.

Kami dapat mengimplementasikan polimorfisme yang ditentukan pengguna untuk memanggil fungsi yang sama dengan tanda tangan parameter yang berbeda, dan ini dapat dianggap sebagai sedikit kompensasi atas tidak tersedianya metode overloading di python. Mari kita telusuri kode contoh

def mul (a,b,c= 1 ):
kembali a*b*c;

cetak(mul( 1 , 2 , 3 ))
cetak(mul( 1 , 2 ))

Dalam kode di atas, meskipun jumlah parameter yang dilewatkan tidak sama, kedua pernyataan cetak merujuk ke metode yang sama. Dalam panggilan fungsi kedua, parameter c ditetapkan dengan nilai default 1.

Demikian pula beberapa metode yang telah ditentukan dalam python menunjukkan fitur polimorfisme, di mana satu metode dapat menerima parameter dari tipe data yang berbeda. Metode seperti len() menunjukkan fitur ini. Dan inilah kode untuk mengilustrasikannya.

cetak(len([ 1 , 2 , 3 , 4 ]))
cetak(len(( 1 , 2 , 3 , 4 )))
print(len( "python" ))
print(len({ “kunci1” : “nilai1” , “kunci2” : “nilai2” }))

Dalam kode di atas, metode len() yang sama digunakan untuk daftar, tuple, string, dan kamus.

Checkout: Aplikasi Python di Dunia Nyata

Kelebihan Beban Operator

Operator seperti '+' dapat digunakan dalam berbagai cara. Misalnya, ini dapat digunakan untuk menambahkan dua angka, string, serta daftar, dll. Dan inilah kode untuk menunjukkannya.

l1=[ 1 , 2 , 3 ]
l2=[ 3 , 4 , 5 ]

n1 = 2
n2 = 3

s1= “hai”
s2= “di sana”

cetak(l+l1)
cetak(s1+s2)
cetak(n1+n2)

Metode Override

Metode overriding juga dianggap sebagai polimorfisme runtime, dan didukung oleh banyak bahasa seperti java, c++, dan python.

Fitur ini terkait dengan pewarisan, kelas anak di python mewarisi fungsi anggota dan variabel anggota dari kelas induknya. Dan jika kita merasa bahwa implementasi dari metode parent class tidak relevan, maka kita dapat meng-override metode tersebut pada child class. Dan memodifikasi fungsi anggota sesuai kebutuhan di kelas anak disebut sebagai metode overriding.

kelas dua_roda :
def bahan bakar (sendiri):
print( "Kendaraan roda dua membutuhkan bahan bakar untuk berjalan" )
kapasitas def (diri):
print( “sepeda muat untuk maksimal 2 orang” )

kelas sepeda_listrik (roda dua):
def bahan bakar (sendiri):
print( “Sepeda listrik menggunakan baterai” )
kelas bensin_bike (roda dua):
def bahan bakar (sendiri):
print( "Sepeda Bensin Berbahan Bakar Bensin" )
sepeda = roda dua ()
ebike=sepeda_listrik()
pbike = sepeda_bensin()

sepeda.bahan bakar()
sepeda.kapasitas()
sepeda.bahan bakar()
ebike.kapasitas()
pbike.fuel()
sepeda.kapasitas()

Pada kode di atas, two_wheeler adalah kelas induk dan electric_bike, petrol_bike adalah kelas anak. Dan metode fuel(), capacity() diwarisi oleh class anak electric_bike dan petrol_bike. Sekarang, kita dapat memperbarui implementasi metode jika diperlukan, dan di dalam kelas electric_bike kita telah mengimplementasikan kembali metode fuel(), dengan cara yang sama mengimplementasikan kembali metode fuel() di kelas petrol_bike.

Misalnya pada kode ebike.fuel() mencetak “sepeda listrik berjalan dengan baterai” dan pbike.fuel() mencetak sepeda bensin berjalan dengan bensin”.

Polimorfisme dalam Metode Kelas

Python memungkinkan kelas yang berbeda memiliki nama metode yang sama, dan ini berada di bawah fitur polimorfisme. Dan pemanggilan metode didasarkan pada objek yang kita gunakan untuk memanggil metode.

sepeda kelas :
def bahan bakar (sendiri):
print( “Sepeda tidak membutuhkan bahan bakar!” )
kapasitas def (sendiri):
print( “Sepeda cocok untuk dinaiki satu orang” )

kelas sepeda_listrik :
def bahan bakar (sendiri):
print( "sepeda listrik menggunakan baterai" )
kapasitas def (diri):
print( “Sepeda listrik cocok untuk maksimal 2 orang” )

kelas bensin_bike :
def bahan bakar (sendiri):
print( "Sepeda Bensin Berbahan Bakar Bensin" )
kapasitas def (diri):
print( “Sepeda bensin cocok untuk maksimal 2 orang” )

ecobike=sepeda()
ebike=sepeda_listrik()
pbike = sepeda_bensin()
l=[ecobike,ebike,pbike]

untuk obj di l:
obj.bahan bakar()
obj.kapasitas()

Pada kode di atas, kita telah membuat tiga objek dari tiga kelas sepeda, sepeda_listrik, dan sepeda_bensin. Dan ketiga kelas memiliki nama metode yang sama. Sekarang, tugas kompiler untuk memutuskan metode mana yang harus dipanggil berdasarkan jenis objek yang digunakan untuk memanggil metode tersebut.

Misalnya, ecobike.fuel() akan memanggil metode fuel() dari kelas sepeda dan ebike.fuel() akan memanggil metode fuel() dari kelas electric_bike. Kami menambahkan semua objek ini ke daftar dan di setiap iterasi, kami akan memanggil nama fungsi yang sama tetapi jenis objek yang memanggil metode akan berubah. Pada iterasi pertama metode class sepeda disebut, dan metode electric_bike, petrol_bike pada iterasi selanjutnya.

Baca: Ide & Topik Proyek Python

Kesimpulan

Pada artikel ini, kita telah memahami apa yang dimaksud dengan polimorfisme, membahas bagaimana python berbeda dalam hal kelebihan metode. Berjalan melalui demonstrasi berbagai kemungkinan polimorfisme pada ular sanca seperti kelebihan operator, polimorfisme fungsi, penggantian metode, dan polimorfisme dalam metode kelas.

Sekarang setelah Anda mengetahui polimorfisme di python, terapkan kode python Anda berikutnya menggunakan semua fitur ini!

Jika Anda penasaran untuk belajar tentang ilmu data, lihat Diploma PG IIIT-B & upGrad dalam Ilmu Data yang dibuat untuk para profesional yang bekerja dan menawarkan 10+ studi kasus & proyek, lokakarya praktis, bimbingan dengan pakar industri, 1- on-1 dengan mentor industri, 400+ jam pembelajaran dan bantuan pekerjaan dengan perusahaan-perusahaan top.

Persiapkan Karir Masa Depan

UPGRAD DAN DIPLOMA PG IIIT-BANGALORE DALAM ILMU DATA
DAFTAR SEKARANG @ UPGRAD