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!

Python - Constructors

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:

  1. Konstruktor Default
  2. 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