Python - Konstruktor: Membangun Dasar Objek
Selamat datang, pemrogram Python yang aspiratif! Hari ini, kita akan menyelam ke dalam dunia yang menarik konstruktor. Jangan khawatir jika anda baru dalam pemrograman; saya akan memandu anda melalui konsep ini langkah demi langkah, seperti yang saya lakukan untuk pelbagai pelajar selama tahun tahun pengajaran saya. Jadi, rakam minuman kegemaran anda, dapatkan kenyamanan, dan mari kita mulakan perjalanan yang menarik ini bersama-sama!
Apa itu Konstruktor?
Sebelum kita melompat ke atas detail, mari kita fahami apa itu konstruktor. Bayangkan anda membina sebuah rumah. Konstruktor adalah seperti rakitan dan proses penataan dasar awal yang digabungkan. Ia adalah metode khusus yang dipanggil apabila anda membuat objek baru (atau " contoh") kelas.
Membuat Konstruktor di Python
Di Python, konstruktor dibuat menggunakan metode khusus __init__()
. Metode ini dipanggil secara automatik apabila anda membuat objek baru bagi kelas.
Mari kita mulakan dengan contoh yang simple:
class House:
def __init__(self):
print("Sebuah rumah baru sedang dibangun!")
my_house = House()
Apabila anda menjalankan kod ini, anda akan melihat mesej "Sebuah rumah baru sedang dibangun!" dicetak. Ini terjadi kerana metode __init__()
dipanggil secara automatik apabila kita membuat my_house
.
Jenis Konstruktor di Python
Sekarang, mari kita eksplor jenis jenis konstruktor di Python. Ada dua jenis utama:
- Konstruktor Default
- Konstruktor Dengan Parameter
Konstruktor Default di Python
Konstruktor default adalah satu yang tidak mengambil argumen apa-apa (kecuali self
). Apabila anda tidak menentukan konstruktor apa-apa dalam kelas anda, Python secara automatik menyediakan konstruktor default.
class Dog:
def __init__(self):
self.breed = "Tidak Diketahui"
self.age = 0
my_dog = Dog()
print(f"Breeds anjing saya: {my_dog.breed}")
print(f"Umur anjing saya: {my_dog.age}")
Dalam contoh ini, setiap objek Dog
yang kita buat akan memiliki jenisnya ditetapkan ke "Tidak Diketahui" dan umurnya ditetapkan ke 0 secara default.
Konstruktor Dengan Parameter
Konstruktor dengan parameter menerima argumen, membolehkan kita untuk menginisialisasi atribut objek dengan nilai khusus apabila membuat objek.
class Cat:
def __init__(self, name, color):
self.name = name
self.color = color
my_cat = Cat("Whiskers", "Jingga")
print(f>Nama kucing saya adalah {my_cat.name} dan ia adalah {my_cat.color}.)
Di sini, kita menghantar "Whiskers" dan "Jingga" sebagai argumen apabila membuat objek Cat
kita. Konstruktor menggunakan ini untuk menetapkan atribut name
dan color
.
Python - Metode Instan
Metode instan adalah fungsi yang milik kelas dan boleh mengakses serta mengubahsuai atribut objek. Mereka selalu mengambil self
sebagai parameter pertama.
class Bird:
def __init__(self, species):
self.species = species
self.can_fly = True
def describe(self):
if self.can_fly:
return f"Saya adalah {self.species} dan saya boleh terbang!"
else:
return f"Saya adalah {self.species} tetapi saya tidak boleh terbang."
def set_flying_ability(self, can_fly):
self.can_fly = can_fly
parrot = Bird("Burung Kenari")
print(parrot.describe()) # Output: Saya adalah Burung Kenari dan saya boleh terbang!
penguin = Bird("Penguin")
penguin.set_flying_ability(False)
print(penguin.describe()) # Output: Saya adalah Penguin tetapi saya tidak boleh terbang.
Dalam contoh ini, describe()
dan set_flying_ability()
adalah metode instan. Mereka boleh mengakses dan mengubahsuai atribut objek menggunakan self
.
Python Konstruktor Berbilang
Python tidak menyokong pemuatan metode dalam arti tradisional, jadi kita tidak boleh memiliki __init__()
berbilang. Walau bagaimanapun, kita boleh mensimulasikan konstruktor berbilang menggunakan metode kelas.
class Rectangle:
def __init__(self, length, width):
self.length = length
self.width = width
@classmethod
def create_square(cls, side_length):
return cls(side_length, side_length)
def area(self):
return self.length * self.width
rect = Rectangle(4, 5)
print(f"Luas Persegi Panjang: {rect.area()}") # Output: Luas Persegi Panjang: 20
square = Rectangle.create_square(4)
print(f"Luas Persegi: {square.area()}") # Output: Luas Persegi: 16
Di sini, create_square()
adalah metode kelas yang bertindak sebagai konstruktor alternatif untuk membuat persegi.
Kesimpulan
Konstruktor adalah penyelia pembuka pintu bagi penciptaan objek di Python. Mereka menetapkan rakaman untuk bagaimana objek kita akan bertindak dan apa data yang mereka kandung. Apabila anda teruskan perjalanan Python anda, anda akan menemui konstruktor sebagai alat yang berharga dalam menciptakan kod yang kuat dan fleksibel.
Ingat, praktek membuat kita sempurna! Coba untuk membuat kelas anda sendiri dengan jenis jenis konstruktor yang berbeza. Eksperimen dengan metode instan dan konstruktor alternatif. Semakin anda bermain dengan konsep ini, semakin natural mereka akan menjadi.
Happy coding, pemrogram Python masa depan! ??
Method | Description | Example |
---|---|---|
__init__(self, ...) |
Metode konstruktor, dipanggil apabila membuat objek baru | def __init__(self, name): self.name = name |
Metode Instan | Metode reguler yang boleh mengakses dan mengubahsuai atribut objek | def describe(self): return f"Saya adalah {self.name}" |
@classmethod |
Dekorator untuk membuat konstruktor alternatif atau metode level kelas | @classmethod def create_default(cls): return cls("Default") |
@staticmethod |
Dekorator untuk metode yang tidak perlu akses ke atribut kelas atau instan | @staticmethod def validate_name(name): return len(name) > 0 |
Credits: Image by storyset