Python Academy · Pelajaran

Kaedah Ajaib (__str__, __repr__, dll.)

Dalami kaedah khas Python untuk menyesuaikan tingkah laku objek.

Pelajaran 6 daripada 611 langkah

Kaedah Ajaib (__str__, __repr__, dll.) ialah pelajaran Python Academy percuma di CoddyKit. Ini ialah pelajaran 6 daripada 6. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Python Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Python Academy merangkumi sejumlah 6 pelajaran.

Pengenalan kepada Kaedah Magik

Kaedah magik, yang juga dikenali sebagai kaedah garis bawah berganda (singkatan daripada 'garis bawah berganda'), ialah kaedah khas dalam Python yang membolehkan Anda menentukan tingkah laku objek dalam situasi tertentu.

Dalam pelajaran ini, Anda akan mempelajari cara menggunakan kaedah magik yang lazim seperti __str__, __repr__ dan kaedah lain.

Kaedah Ajaib (__str__, __repr__, dll.) — ilustrasi 1

Apakah Kaedah Magik?

Kaedah magik ialah kaedah yang telah dipratakrifkan dalam Python dan dipanggil secara automatik apabila operasi tertentu dilakukan pada objek. Kaedah ini dikenal pasti melalui dua garis bawahnya, seperti __init__ atau __str__.

Kaedah __init__

Kaedah __init__ ialah pembina yang memulakan objek baharu. Kaedah ini dipanggil secara automatik apabila objek dicipta:

# Using the __init__ method to initialize attributes
class Person:
    def __init__(self, name, age):
        self.name = name  # Initialize the name attribute
        self.age = age  # Initialize the age attribute

# Creating an instance of Person
person = Person("Alice", 30)
print(person.name, person.age)  # Outputs: Alice 30

Kaedah __str__

Kaedah __str__ mentakrifkan perwakilan rentetan bagi sesuatu objek apabila print() dipanggil:

# Defining the __str__ method
class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def __str__(self):
        return f"Name: {self.name}, Age: {self.age}"  # String representation

person = Person("Alice", 30)
print(person)  # Outputs: Name: Alice, Age: 30

Kaedah __repr__

Kaedah __repr__ menyediakan perwakilan rentetan rasmi bagi sesuatu objek dan sering digunakan untuk penyahpepijatan:

# Defining the __repr__ method
class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def __repr__(self):
        return f"Person('{self.name}', {self.age})"  # Debug-friendly representation

person = Person("Alice", 30)
print(repr(person))  # Outputs: Person('Alice', 30)

Membebankan Operator dengan Kaedah Magik

Anda boleh menggunakan kaedah magik untuk menyesuaikan tingkah laku operator seperti + atau ==:

# Overloading the + operator with __add__
class Point:
    def __init__(self, x, y):
        self.x = x
        self.y = y

    def __add__(self, other):
        return Point(self.x + other.x, self.y + other.y)  # Adding two points

    def __str__(self):
        return f"({self.x}, {self.y})"

point1 = Point(1, 2)
point2 = Point(3, 4)
result = point1 + point2  # Calls __add__
print(result)  # Outputs: (4, 6)

Kaedah Magik yang Lazim Digunakan

Berikut ialah beberapa kaedah magik yang lazim digunakan:

  • __len__: Mentakrifkan tingkah laku fungsi len().
  • __getitem__: Membolehkan pengindeksan seperti senarai atau kamus.
  • __eq__: Menyesuaikan perbandingan kesamaan menggunakan ==.

Menggunakan __len__ dan __getitem__

Anda boleh menggunakan __len__ untuk menentukan panjang objek tersuai dan __getitem__ untuk menjadikannya boleh diindeks:

# Using __len__ and __getitem__ in a custom class
class CustomList:
    def __init__(self, items):
        self.items = items

    def __len__(self):
        return len(self.items)  # Defines the behavior of len()

    def __getitem__(self, index):
        return self.items[index]  # Enables indexing

custom_list = CustomList([1, 2, 3])
print(len(custom_list))  # Outputs: 3
print(custom_list[1])  # Outputs: 2

Kesilapan Lazim dalam Kaedah Magik

Berikut ialah beberapa kesilapan yang perlu dielakkan:

  • Mentakrifkan kaedah magik tanpa memadankannya dengan tingkah laku yang dimaksudkan.
  • Membebankan operator tanpa keperluan.
  • Terlepas pandang untuk melaksanakan kaedah magik yang diperlukan dalam jenis data tersuai.

Apakah yang Kita Pelajari?

Dalam pelajaran ini, Anda telah mempelajari:

  • Maksud kaedah magik dan sebab kaedah ini berguna.
  • Cara menggunakan kaedah magik yang lazim seperti __init__, __str__ dan __repr__.
  • Cara membebankan operator menggunakan kaedah magik.

Tahniah! Mari beralih kepada topik seterusnya.

Kaedah Ajaib (__str__, __repr__, dll.) — ilustrasi 11
Percuma untuk bermula

Pelajari Python dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
76
Pelajaran
320

Soalan Lazim

Adakah pelajaran “Kaedah Ajaib (__str__, __repr__, dll.)” percuma?

Ya — teks penuh “Kaedah Ajaib (__str__, __repr__, dll.)” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Python Academy, tingkat taraf kepada CoddyKit PRO. Kursus Python Academy merangkumi sejumlah 6 pelajaran.

Apakah yang akan saya pelajari dalam “Kaedah Ajaib (__str__, __repr__, dll.)”?

Dalami kaedah khas Python untuk menyesuaikan tingkah laku objek. Anda berlatih Python Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Python Academy?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Python Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 6 daripada 6.

Berapa lamakah pelajaran “Kaedah Ajaib (__str__, __repr__, dll.)” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Python Academy ini?

Ya. Setiap pelajaran Python Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Kelas dan Objek
  2. Atribut dan Kaedah
  3. Pewarisan
  4. Polimorfisme
  5. Pengkapsulan dan Pengabstrakan
  6. Kaedah Ajaib (__str__, __repr__, dll.)
← Kembali ke Python Academy