Rumah > Artikel > pembangunan bahagian belakang > Berikut ialah beberapa pilihan tajuk, dengan mengingati format soalan dan memfokuskan pada isu teras: Langsung dan Jelas: * Bagaimana untuk Mengakses Pembolehubah Kelas Statik Dalam Kaedah dalam Python? * Mengapa Saya Mendapat a
Apabila menghadapi "NameError" semasa cuba mengakses pembolehubah kelas statik dalam kaedah, ia menjadi perlu untuk melaraskan sintaks. Begini cara untuk melakukannya dengan berkesan:
Dalam konteks kod yang diberikan:
<code class="python">class Foo(object): bar = 1 def bah(self): print(bar) f = Foo() f.bah()</code>
Ralat berlaku kerana "bar" diakses sebagai pembolehubah global dalam kaedah "bah". Untuk menyelesaikan masalah ini, dua pilihan tersedia:
1. Akses melalui Atribut Kelas (Pembolehubah Statik):
<code class="python">def bah(self): print(Foo.bar)</code>
Sintaks ini mengakses "bar" sebagai pembolehubah statik kelas "Foo," tanpa dilampirkan pada contoh tertentu.
2. Akses melalui Atribut Instance:
<code class="python">def bah(self): print(self.bar)</code>
Sintaks ini mengakses "bar" sebagai pembolehubah contoh dalam kaedah. Tugasan yang dibuat pada "self.bar" akan mencipta versi "bar" khusus contoh untuk setiap tika "Foo."
Nota Tambahan:
Sebagai alternatif, tetapkan atribut kelas sebagai "self.bar" juga mempengaruhi semua kejadian dalam kelas:
<code class="python">def bah(self): print(self.bar) self.bar = 2</code>
Dalam kes ini, panggilan berikutnya kepada "bah" untuk kejadian lain akan mencetak "2" kerana versi khusus contoh bagi "bar" dicipta dengan pantas.
Atas ialah kandungan terperinci Berikut ialah beberapa pilihan tajuk, dengan mengingati format soalan dan memfokuskan pada isu teras: Langsung dan Jelas: * Bagaimana untuk Mengakses Pembolehubah Kelas Statik Dalam Kaedah dalam Python? * Mengapa Saya Mendapat a. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!