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

Mary-Kate Olsen
Lepaskan: 2024-10-26 03:01:28
asal
279 orang telah melayarinya

  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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!