Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Apakah Perbezaannya: Contoh vs. Atribut Kelas dalam Python?

Apakah Perbezaannya: Contoh vs. Atribut Kelas dalam Python?

DDD
DDDasal
2024-10-27 06:40:29377semak imbas

  What's the Difference: Instance vs. Class Attributes in Python?

Kesan Definisi Pembolehubah Dalam dan Luar __init__() dalam Kelas

Dalam Python, pembolehubah kelas diisytiharkan dalam fungsi pembina __init__() mempamerkan tingkah laku yang berbeza berbanding dengan yang ditakrifkan di luar. Pembolehubah yang diisytiharkan di dalam __init__() ialah atribut instance, manakala pembolehubah yang ditakrifkan di luar ialah atribut kelas.

Atribut Instance (Defined Inside __init__() dengan 'self')

Pembolehubah prepended dengan diri dalam __init__() dikaitkan dengan contoh objek tertentu. Setiap contoh mempunyai salinan pembolehubah ini sendiri. Oleh itu, perubahan yang dibuat pada pembolehubah ini dalam satu kejadian tidak akan menjejaskan kejadian lain.

Contoh:

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

    def my_func(self):
        print(self.value)</code>

Di sini, nilai ialah atribut tika. Setiap tika WithClass akan mempunyai nilainya sendiri.

Atribut Kelas (Ditentukan Di Luar __init__)

Pembolehubah yang ditakrifkan di luar __init__() ialah atribut kelas. Pembolehubah ini dikongsi antara semua keadaan kelas. Sebarang perubahan yang dibuat kepada mereka dalam satu kejadian ditunjukkan merentas semua kejadian lain.

Contoh:

<code class="python">class WithoutClass:
    value = "Bob"

    def my_func(self):
        print(self.value)</code>

Dalam kes ini, nilai ialah atribut kelas. Semua kejadian WithoutClass akan merujuk kepada pembolehubah nilai yang sama.

Akibat Definisi Pembolehubah

Pilihan antara menentukan pembolehubah di dalam atau di luar __init__() bergantung pada fungsi yang diingini :

  • Atribut Contoh: Gunakan apabila anda mahu setiap tika mempunyai versi pembolehubah tersendiri.
  • Atribut Kelas: Gunakan apabila nilai pembolehubah harus dikongsi antara semua kejadian kelas.

Penggunaan atribut ini yang tidak betul boleh membawa kepada tingkah laku atau ralat yang tidak dijangka. Sebagai contoh, mentakrifkan atribut sebagai atribut instance apabila ia sepatutnya menjadi atribut kelas mungkin secara tidak sengaja mencipta berbilang salinan pembolehubah, yang membawa kepada isu prestasi atau ketidakkonsistenan data.

Atas ialah kandungan terperinci Apakah Perbezaannya: Contoh vs. Atribut Kelas dalam Python?. 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