Menyelami Nuansa Kelas dan Kaedah Contoh: Beyond Self vs. Cls
Proposal Peningkatan Python (PEP) 8 mencadangkan penggunaan daripada "diri" sebagai hujah pertama dalam kaedah contoh dan "cls" sebagai hujah pertama dalam kaedah kelas. Perbezaan ini berpunca daripada peranan berbeza yang dimainkan oleh kaedah ini dalam bekerja dengan kejadian dan kelas.
Kaedah Contoh: Kelebihan Diri
Kaedah contoh digunakan pada kejadian suatu kelas. Mereka biasanya berinteraksi dengan atribut dan tingkah laku tertentu bagi contoh tertentu itu. Parameter pertama kaedah ini ialah diri, yang mewakili tika yang kaedah itu dipanggil.
Sebagai contoh, kelas berikut mentakrifkan kaedah contoh "perkenalkan":
<code class="python">class Inst: def __init__(self, name): self.name = name def introduce(self): print("Hello, I am %s, and my name is %s" % (self, self.name))</code>
Apabila kita mencipta tika kelas Inst dan memanggil kaedah "perkenalkan", tika itu sendiri diluluskan sebagai parameter diri, membolehkan kita mengakses atributnya (dalam kes ini, atribut "nama").
Kaedah Kelas: Merangkul Cls
Kaedah kelas, sebaliknya, beroperasi pada kelas itu sendiri dan bukannya pada kejadian individu. Mereka membenarkan kami mengubah suai atau memeriksa struktur atau tingkah laku kelas. Parameter pertama kaedah ini ialah cls, yang mewakili kelas di mana kaedah dipanggil.
Contoh berikut menggambarkan kaedah kelas:
<code class="python">class Cls: @classmethod def introduce(cls): print("Hello, I am %s!" % cls)</code>
Kaedah ini tidak memerlukan contoh kerana ia tidak berinteraksi dengan atribut objek tertentu. Sebaliknya, ia beroperasi pada kelas itu sendiri, memberikan maklumat tentang strukturnya.
Kaedah kelas amat berguna apabila mewarisi daripada kelas induk, kerana ia membenarkan kelas anak mengubah suai atau melanjutkan gelagat kelas induk. Sebagai contoh, subkelas berikut mengatasi kaedah "perkenalkan" kelas Cls:
<code class="python">class SubCls(Cls): pass SubCls.introduce() # outputs: Hello, I am <class 'SubCls'></code>
Dengan menggunakan "cls" sebagai parameter pertama, kaedah "perkenalkan" boleh dipanggil terus pada subkelas, membenarkan ia untuk menentukan tingkah lakunya sendiri sambil masih mengakses sifat yang diwarisi daripada kelas induk.
Atas ialah kandungan terperinci Contoh vs. Kaedah Kelas dalam Python: Bilakah Anda Harus Menggunakan \'self\' dan \'cls\'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!