Apabila bekerja dengan kelas dalam Python, anda mungkin menghadapi keadaan di mana anda perlu mengakses pembolehubah kelas dari dalam kaedah. Walau bagaimanapun, hanya merujuk pembolehubah dalam kaedah boleh mengakibatkan NameError.
Isunya
Pertimbangkan coretan kod berikut:
<code class="python">class Foo(object): bar = 1 def bah(self): print(bar)</code>
Apabila cuba menjalankan kod ini, anda akan menemui NameError: 'bar' nama global tidak ditakrifkan. Ini kerana bar pembolehubah ialah pembolehubah kelas, dan kaedah bah tidak dapat mengaksesnya secara langsung.
Penyelesaian
Untuk mengakses pembolehubah kelas dalam kaedah, terdapat dua pilihan:
Jika anda berhasrat untuk mengubah suai pembolehubah kelas, gunakan Foo.bar; jika tidak, gunakan self.bar.
Contoh
Memfaktorkan semula coretan kod menggunakan pendekatan yang betul:
<code class="python">class Foo(object): bar = 1 def bah(self): print(self.bar) # Access the instance variable f = Foo() f.bah() # Prints 1</code>
Kod ini akan mencetak 1, mengakses pembolehubah contoh. Jika anda ingin mengakses pembolehubah kelas, cuma tukar self.bar kepada Foo.bar dalam pernyataan cetakan.
Atas ialah kandungan terperinci Bagaimana untuk Mengakses Pembolehubah Kelas daripada Kaedah dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!