Memahami Kelas dan Pembolehubah Instance dalam Python
Salah satu konsep utama dalam pengaturcaraan berorientasikan objek ialah perbezaan antara pembolehubah kelas dan instance. Dalam Python, pembolehubah ini memainkan peranan penting dalam mengurus data dalam kelas. Walau bagaimanapun, kekeliruan boleh timbul mengenai tingkah laku mereka berdasarkan cara ia ditakrifkan.
Pembolehubah Kelas vs. Contoh
Contoh 1: Pembolehubah Kelas
<code class="python">class testClass(): list = [] def __init__(self): self.list.append('thing')</code>
Dalam contoh ini, senarai pembolehubah ialah pembolehubah kelas kerana ia ditakrifkan di luar mana-mana kaedah. Akibatnya, apabila tika baharu kelas dibuat, ia mengakses pembolehubah senarai yang sama dan kandungannya. Oleh itu, output untuk kedua-dua kejadian (p dan f) ialah:
['thing'] ['thing', 'thing']
Contoh 2: Pembolehubah Contoh
<code class="python">class testClass(): def __init__(self): self.list = [] self.list.append('thing')</code>
Dalam contoh ini, pembolehubah senarai ditakrifkan dalam kaedah __init__(), menggunakan diri. Oleh itu, ia menjadi pembolehubah contoh. Setiap kejadian mempunyai pembolehubah senarai tersendiri. Oleh itu, output untuk setiap contoh ialah:
['thing'] ['thing']
Penyelesaian Penamaan untuk Kelas dan Pembolehubah Instance
Kunci untuk memahami tingkah laku kelas dan pembolehubah contoh terletak pada bagaimana Python menyelesaikan nama. Apabila anda mengakses self.list, Python terlebih dahulu menyemak sama ada atribut list wujud dalam contoh itu sendiri. Jika tidak ditemui, ia kemudian menyemak dalam definisi kelas.
Ini menerangkan sebab dalam contoh pertama, senarai dianggap sebagai pembolehubah kelas, manakala dalam contoh kedua, ia menjadi contoh pembolehubah.
Ringkasnya, penempatan definisi pembolehubah dalam kelas atau kaedah menentukan sama ada pembolehubah kelas atau contoh. Memahami perbezaan ini adalah penting untuk mengurus data dengan berkesan dalam kod Python berorientasikan objek.
Atas ialah kandungan terperinci Bagaimanakah Pembolehubah Kelas dan Contoh Berbeza dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!