Rumah >pembangunan bahagian belakang >Tutorial Python >Contoh vs. Pembolehubah Kelas: Di Mana Anda Harus Mengisytiharkan Pembolehubah dalam 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>
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!