Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Contoh vs. Kaedah Kelas dalam Python: Bilakah Anda Harus Menggunakan \"self\" dan \"cls\"?

Contoh vs. Kaedah Kelas dalam Python: Bilakah Anda Harus Menggunakan \"self\" dan \"cls\"?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-26 03:01:28278semak imbas

  Instance vs. Class Methods in Python: When Should You Use

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn