Ringkasan. dalam tutorial ini, Anda akan belajar tentang metode kelas Python dan kapan menggunakannya dengan tepat
Pengantar metode kelas Python
Sejauh ini, Anda telah mempelajari tentang metode instance yang terikat pada instance tertentu dari suatu kelas
Metode instan dapat mengakses variabel instan dalam kelas yang sama. Untuk memanggil metode instance, Anda perlu membuat instance kelas terlebih dahulu
Berikut ini mendefinisikan kelas Person
Code language: Python [python]
class Person: def __init__[self, first_name, last_name, age]: self.first_name = first_name self.last_name = last_name self.age = age def get_full_name[self]: return f"{self.first_name} {self.last_name}" def introduce[self]: return f"Hi. I'm {self.first_name} {self.last_name}. I'm {self.age} years old."
Kelas Person
memiliki tiga metode contoh termasuk ________24______, get_full_name[]
, dan
0Code language: Python [python]
class Person: # .. other methods def create_anonymous[self]: return Person['John', 'Doe', 25]
Misalkan Anda ingin menambahkan metode yang membuat orang anonim ke kelas Person
Untuk melakukannya, Anda akan membuat kode berikut
_Code language: Python [python]
class Person: # .. other methods def create_anonymous[self]: return Person['John', 'Doe', 25]
2 adalah metode contoh yang mengembalikan orang anonimCode language: Python [python]
class Person: # .. other methods def create_anonymous[self]: return Person['John', 'Doe', 25]
Namun, untuk memanggil metode
_2, Anda perlu membuat instance, yang tidak masuk akal dalam kasus iniCode language: Python [python]
class Person: # .. other methods def create_anonymous[self]: return Person['John', 'Doe', 25]
Inilah sebabnya mengapa metode kelas Python ikut bermain
Metode kelas tidak terikat pada instance tertentu. Itu terikat ke kelas saja
Untuk menentukan metode kelas
- Tempatkan dekorator
_4 di atas definisi metode. Untuk saat ini, Anda hanya perlu memahami bahwa dekorator
Code language: Python [python]class Person: # .. other methods def create_anonymous[self]: return Person['John', 'Doe', 25]
4 akan mengubah metode instance menjadi metode kelas
Code language: Python [python]class Person: # .. other methods def create_anonymous[self]: return Person['John', 'Doe', 25]
- Kedua, ganti nama parameter
6 menjadi
Code language: Python [python]class Person: # .. other methods def create_anonymous[self]: return Person['John', 'Doe', 25]
7.
Code language: Python [python]class Person: # .. other methods def create_anonymous[self]: return Person['John', 'Doe', 25]
7 berarti
Code language: Python [python]class Person: # .. other methods def create_anonymous[self]: return Person['John', 'Doe', 25]
9. Namun,
Code language: Python [python]class Person: # .. other methods def create_anonymous[self]: return Person['John', 'Doe', 25]
_9 adalah kata kunci sehingga Anda tidak dapat menggunakannya sebagai parameter
Code language: Python [python]class Person: # .. other methods def create_anonymous[self]: return Person['John', 'Doe', 25]
Berikut ini menunjukkan versi baru dari kelas Person
Code language: Python [python]
class Person: def __init__[self, first_name, last_name, age]: self.first_name = first_name self.last_name = last_name self.age = age def get_full_name[self]: return f"{self.first_name} {self.last_name}" def introduce[self]: return f"Hi. I'm {self.first_name} {self.last_name}. I'm {self.age} years old." @classmethod def create_anonymous[cls]: return Person['John', 'Doe', 25]
Metode
2 tidak dapat mengakses atribut instance. Tapi itu bisa mengakses atribut kelas melalui variabelCode language: Python [python]
class Person: # .. other methods def create_anonymous[self]: return Person['John', 'Doe', 25]
7Code language: Python [python]
class Person: # .. other methods def create_anonymous[self]: return Person['John', 'Doe', 25]
Memanggil metode kelas Python
Untuk memanggil metode kelas, Anda menggunakan nama kelas, diikuti dengan titik, dan kemudian nama metode seperti ini
Code language: Python [python]
ClassName.method_name[]
Contoh berikut menunjukkan cara memanggil metode kelas
2 dari kelas PersonCode language: Python [python]
class Person: # .. other methods def create_anonymous[self]: return Person['John', 'Doe', 25]
Code language: Python [python]
anonymous = Person.create_anonymous[] print[anonymous.introduce[]]
Keluaran
Code language: Python [python]
Hi. I'm John Doe. I'm 25 years old.
Metode kelas vs. metode contoh
Tabel berikut mengilustrasikan perbedaan antara metode kelas dan metode instan
Fiturmetode kelasMetode InstanceBindingClassInstance dari classCalling5Code language: Python [python]
class Person: def __init__[self, first_name, last_name, age]: self.first_name = first_name self.last_name = last_name self.age = age def get_full_name[self]: return f"{self.first_name} {self.last_name}" def introduce[self]: return f"Hi. I'm {self.first_name} {self.last_name}. I'm {self.age} years old." @classmethod def create_anonymous[cls]: return Person['John', 'Doe', 25]
6MengaksesAtribut kelasInstance & atribut kelasCode language: Python [python]
class Person: def __init__[self, first_name, last_name, age]: self.first_name = first_name self.last_name = last_name self.age = age def get_full_name[self]: return f"{self.first_name} {self.last_name}" def introduce[self]: return f"Hi. I'm {self.first_name} {self.last_name}. I'm {self.age} years old." @classmethod def create_anonymous[cls]: return Person['John', 'Doe', 25]
Kapan menggunakan metode kelas Python
Anda dapat menggunakan metode kelas untuk metode apa pun yang tidak terikat pada instance tertentu tetapi kelas. Dalam praktiknya, Anda sering menggunakan metode kelas untuk metode yang membuat turunan kelas
Ketika sebuah metode membuat turunan dari kelas dan mengembalikannya, metode tersebut disebut metode pabrik. Misalnya,
_2 adalah metode pabrik karena mengembalikan instance baru dari kelasCode language: Python [python]
class Person: # .. other methods def create_anonymous[self]: return Person['John', 'Doe', 25]
Person