Memahami Skop Pembolehubah dalam Kelas Python
Mengisytiharkan pembolehubah dalam kelas Python boleh mengelirukan pada mulanya. Artikel ini bertujuan untuk menjelaskan skop dan nuansa berbeza yang dikaitkan dengan perisytiharan berubah dalam konteks kelas.
Peraturan Skop Am:
Pembolehubah Instance lwn. Pembolehubah Global:
Pembolehubah kejadian (diisytiharkan menggunakan diri.(nama pembolehubah)) berkelakuan berbeza daripada pembolehubah global (diisytiharkan di luar sebarang fungsi atau kelas). Walaupun semua yang diisytiharkan dalam kelas secara teknikalnya awam, pembolehubah ins terikat pada contoh objek individu.
Contoh:
class Test: a = None # Class variable b = None # Class variable def __init__(self, a): self.a = a # Instance variable
Dalam contoh ini, pembolehubah kelas a dan b boleh diakses oleh semua fungsi kelas. Walau bagaimanapun, pembolehubah contoh self.a adalah khusus untuk setiap contoh objek. Menetapkan self.a dalam __init__ tidak menjejaskan pembolehubah kelas a.
Pembolehubah Dilindungi:
Walaupun Python tidak mentakrifkan pembolehubah peribadi atau dilindungi secara eksplisit, pembolehubah diawali dengan garis bawah (_) dianggap dilindungi. Secara teknikal, mereka masih boleh diakses di luar kelas, tetapi mengubah nama mereka tidak menggalakkan akses.
Pembolehubah Peribadi:
Pembolehubah yang diawali dengan garis bawah berganda (__) dianggap peribadi. Nama mereka rosak untuk menyukarkan akses terus di luar kelas.
Nuansa Tambahan:
Atas ialah kandungan terperinci Bagaimanakah Skop Pembolehubah Berfungsi dalam Kelas Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!