Rumah >pembangunan bahagian belakang >Tutorial Python >Berikut ialah beberapa tajuk berasaskan soalan yang sesuai dengan artikel anda: * Atribut Kelas vs. Contoh: Di Mana Anda Harus Mentakrifkan Pembolehubah dalam Python? * Pengaturcaraan Berorientasikan Objek Python: Bila Menggunakan Attri Kelas
Atribut Kelas dan Contoh: Pembolehubah Di Dalam dan Di Luar __init__()
Dalam pengaturcaraan berorientasikan objek, atribut kelas dan atribut contoh memainkan peranan penting peranan. Tetapi apakah perbezaan antara meletakkan pembolehubah di dalam vs. di luar kaedah __init__()? Mari kita mendalami perbezaan ini.
Pertimbangkan coretan kod yang diberikan:
<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 Di Luar __init__()
Pembolehubah yang ditakrifkan di luar __init__() tergolong dalam kelas. Ia adalah biasa kepada semua kejadian yang dibuat daripada kelas itu. Sebagai contoh, dalam kelas WithoutClass:
<code class="python">WithoutClass.value = "Bob"</code>
Mengakses pembolehubah ini melalui mana-mana contoh kelas WithoutClass akan mengembalikan nilai yang sama "Bob."
Variables Inside __init__()
Sebaliknya, pembolehubah yang ditakrifkan di dalam __init__(), diawali dengan diri., dimiliki oleh setiap objek individu. Apabila menetapkan pembolehubah dalam __init__(), ia menjadi atribut contoh khusus untuk objek itu.
<code class="python">WithClass().value = "Alice" # Unique to this instance</code>
Mengakses pembolehubah yang sama ini daripada tika lain kelas WithClass akan menghasilkan nilai yang berbeza:
<code class="python">WithClass().value = "Bob" # Unique to this instance</code>
Implikasi
Pilihan tempat untuk mengisytiharkan pembolehubah mempunyai implikasi untuk kelakuannya.
Atas ialah kandungan terperinci Berikut ialah beberapa tajuk berasaskan soalan yang sesuai dengan artikel anda: * Atribut Kelas vs. Contoh: Di Mana Anda Harus Mentakrifkan Pembolehubah dalam Python? * Pengaturcaraan Berorientasikan Objek Python: Bila Menggunakan Attri Kelas. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!