Contoh vs. Pembolehubah Kelas: Di Mana Anda Harus Mengisytiharkan Pembolehubah dalam Python?

Barbara Streisand
Lepaskan: 2024-10-26 13:33:02
asal
111 orang telah melayarinya

  Instance vs. Class Variables: Where Should You Declare Variables in Python?

Pembolehubah Dalam dan Luar init

Lokasi di mana anda mengisytiharkan pembolehubah dalam kelas Python boleh memberi kesan ketara padanya tingkah laku. Pertimbangkan dua kelas berikut:

<code class="python">class WithClass():
    def __init__(self):
        self.value = "Bob"
    def my_func(self):
        print(self.value)

class WithoutClass():
    value = "Bob"
    def my_func(self):
        print(self.value)</code>
Salin selepas log masuk

Pembolehubah Kelas lwn. Pembolehubah Instance

Perbezaan utama antara kedua-dua kelas ini terletak pada tempat nilai pembolehubah diisytiharkan. Dalam WithClass, ia diisytiharkan dalam kaedah __init__, menjadikannya pembolehubah contoh. Ini bermakna setiap tika WithClass akan mempunyai salinan bebas atribut nilainya sendiri.

Sebaliknya, dalam WithoutClass, atribut nilai diisytiharkan di luar kaedah __init__, menjadikannya pembolehubah kelas. Akibatnya, semua tika WithoutClass akan berkongsi tika tunggal atribut nilai yang sama.

Kaedah Pemula

Kaedah __init__ dalam WithClass berfungsi sebagai pemula untuk setiap contoh objek. Apabila tika dibuat, kaedah __init__ dipanggil dan atribut self.value diberikan nilai "Bob." Nilai ini kemudiannya disimpan dalam contoh dan tersedia untuk kaedah lain dalam objek.

Akibat

Keputusan di mana untuk mengisytiharkan pembolehubah boleh mempunyai implikasi untuk anda tingkah laku program. Jika anda memerlukan setiap contoh kelas mempunyai nilai uniknya sendiri untuk atribut tertentu, ia harus diisytiharkan dalam kaedah __init__ sebagai pembolehubah contoh. Sebagai alternatif, jika semua kejadian kelas harus berkongsi nilai yang sama untuk atribut, ia boleh diisytiharkan di luar kaedah __init__ sebagai pembolehubah kelas.

Oleh itu, perbezaan kritikal ialah sama ada anda mahu pembolehubah itu menjadi dikongsi antara semua kejadian kelas (pembolehubah kelas) atau menjadi unik kepada setiap tika individu (pembolehubah contoh).

Atas ialah kandungan terperinci Contoh vs. Pembolehubah Kelas: Di Mana Anda Harus Mengisytiharkan Pembolehubah dalam Python?. 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!