Python menggunakan kata "metode ajaib" , karena metode tersebut benar-benar melakukan sihir untuk program Anda. Salah satu keuntungan terbesar menggunakan metode sihir Python adalah bahwa metode ini menyediakan cara sederhana untuk membuat objek berperilaku seperti tipe bawaan. Itu berarti Anda dapat menghindari cara-cara yang buruk, kontra-intuitif, dan tidak standar dalam melakukan operator dasar.
Pertimbangkan contoh berikut:
dict1 = {1 : "ABC"}
dict2 = {2 : "EFG"}
dict1 + dict2
Traceback (most recent call last):
File "python", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'dict' and 'dict'
Ini memberikan kesalahan, karena jenis kamus tidak mendukung penambahan. Sekarang, mari perluas kelas kamus dan tambahkan metode ajaib "__add__" :
class AddableDict(dict):
def __add__(self, otherObj):
self.update(otherObj)
return AddableDict(self)
dict1 = AddableDict({1 : "ABC"})
dict2 = AddableDict({2 : "EFG"})
print (dict1 + dict2)
Sekarang, ini memberikan hasil sebagai berikut.
{1: 'ABC', 2: 'EFG'}
Jadi, dengan menambahkan metode ini, tiba-tiba keajaiban telah terjadi dan kesalahan yang Anda dapatkan sebelumnya, telah hilang.
Saya harap, ini membuat semuanya jelas bagi Anda. Untuk informasi lebih lanjut, lihat:
Panduan Metode Sulap Python (Rafe Kettler, 2012)
len()
ataureversed()
berlaku untuk banyak jenis objek, tetapi metode sepertiappend()
hanya berlaku untuk urutan, dll.