Menjelajahi Kelas dan Objek Anonim dengan Python
Fungsi type() bawaan Python mengembalikan kelas tempat suatu objek berada. Dalam Python, sebuah kelas, baik kelas bawaan atau kelas yang ditentukan pengguna adalah objek bertipe kelas.
Contoh
class myclass:
def __init__(self):
self.myvar=10
return
obj = myclass()
print ('class of int', type(int))
print ('class of list', type(list))
print ('class of dict', type(dict))
print ('class of myclass', type(myclass))
print ('class of obj', type(obj))
Ini akan menghasilkan keluaran berikut −
class of int <class 'type'>
class of list <class 'type'>
class of dict <class 'type'>
class of myclass <class 'type'>
Type() memiliki versi tiga argumen sebagai berikut −
Sintaks
newclass=type(name, bases, dict)
Dengan menggunakan sintaks di atas, sebuah kelas dapat dibuat secara dinamis. Tiga argumen bertipe fungsi adalah −
-
name - nama kelas yang menjadi atribut __name__ kelas baru
-
bases - tupel yang terdiri dari kelas induk. Boleh kosong jika bukan kelas turunan
-
dict - kamus pembentuk namespace kelas baru yang berisi atribut dan metode serta nilainya.
Buat Kelas Anonim
Kita dapat membuat kelas anonim dengan fungsi type() versi di atas. Argumen nama adalah string nol, argumen kedua adalah tuple dari satu kelas, yaitu kelas objek (perhatikan bahwa setiap kelas di Python diwarisi dari kelas objek). Kami menambahkan variabel instan tertentu sebagai kamus argumen ketiga. Kami membiarkannya kosong untuk saat ini.
anon=type('', (object, ), {})
Buat Objek Anonim
Untuk membuat objek kelas anonim ini −
obj = anon()
print ("type of obj:", type(obj))
Hasilnya menunjukkan bahwa objek tersebut adalah kelas anonim
type of obj: <class '__main__.'>
Contoh Kelas dan Objek Anonim
Kita juga dapat menambahkan variabel instan dan metode instan secara dinamis. Lihat contoh ini −
def getA(self):
return self.a
obj = type('',(object,),{'a':5,'b':6,'c':7,'getA':getA,'getB':lambda self : self.b})()
print (obj.getA(), obj.getB())
Ini akan menghasilkan keluaran berikut −
5 6