Classes and Objects¶
Python adalah bahasa pemrograman berorientasi objek.
Hampir semua hal dalam Python adalah objek, beserta properti dan metodenya.
Kelas seperti konstruktor objek, atau "cetak biru" untuk membuat objek.
Create a Class¶
Untuk membuat kelas, gunakan kata kunci class:
# Create a class named MyClass, with a property named x:
class MyClass:
x = 5
Create Object¶
Sekarang kita dapat menggunakan kelas bernama MyClass untuk membuat objek:
# Create an object named p1, and print the value of x:
p1 = MyClass()
print(p1.x) #return 5
The __init__() Method¶
Contoh-contoh di atas adalah kelas dan objek dalam bentuk paling sederhana, dan tidak terlalu berguna dalam aplikasi kehidupan nyata.
Untuk memahami arti kelas, kita perlu memahami metode bawaan __init__().
Semua kelas memiliki metode yang disebut __init__(), yang selalu dieksekusi ketika kelas sedang diinisialisasi.
Gunakan metode __init__() untuk menetapkan nilai ke properti objek, atau operasi lain yang perlu dilakukan ketika objek sedang dibuat:
# Create a class named Person, use the __init__() method to assign values for name and age:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
p1 = Person("John", 36)
print(p1.name) # John
print(p1.age) # 36
Catatan
Metode __init__() dipanggil secara otomatis setiap kali kelas digunakan untuk membuat objek baru.
The __str__() Method¶
Metode __str__() mengontrol apa yang harus dikembalikan ketika objek kelas direpresentasikan sebagai string.
Jika metode __str__() tidak diatur, representasi string objek akan dikembalikan:
# The string representation of an object WITHOUT the __str__() method:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
p1 = Person("John", 36)
print(p1) # <__main__.Person object at 0x15039e602100>
print(p1.name) # John
print(p1.age) # 36
# The string representation of an object WITH the __str__() method:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def __str__(self):
return f"{self.name}({self.age})"
p1 = Person("John", 36)
print(p1) # John(36)
Create Methods¶
Anda dapat membuat metode Anda sendiri di dalam objek. Metode di dalam objek adalah fungsi yang dimiliki oleh objek tersebut.
Mari kita buat metode di kelas Person:
# Insert a function that prints a greeting, and execute it on the p1 object:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def myfunc(self):
print("Hello my name is " + self.name)
p1 = Person("John", 36)
p1.myfunc()
Catatan
Parameter self merupakan referensi ke instance kelas saat ini, dan digunakan untuk mengakses variabel yang dimiliki kelas tersebut.
The self Parameter¶
Parameter self adalah referensi ke instance kelas saat ini, dan digunakan untuk mengakses variabel milik kelas tersebut.
Parameter ini tidak harus bernama self, Anda dapat menyebutnya apa pun, tetapi harus menjadi parameter pertama dari fungsi apa pun di dalam kelas:
#Use the words mysillyobject and abc instead of self:
class Person:
def __init__(mysillyobject, name, age):
mysillyobject.name = name
mysillyobject.age = age
def myfunc(abc):
print("Hello my name is " + abc.name)
p1 = Person("John", 36)
p1.myfunc()
Modify Object Properties¶
Anda dapat mengubah properti pada objek seperti ini:
p1.age = 40
Delete Object Properties¶
del p1.age
Delete Objects¶
del p1
The pass Statement¶
Definisi class tidak boleh kosong, tetapi jika karena alasan tertentu Anda memiliki definisi class tanpa konten, masukkan pernyataan pass untuk menghindari kesalahan.
class Person:
pass