Berikut ialah beberapa tajuk berasaskan soalan yang sesuai dengan kandungan artikel anda: * Kelas Python dan Pembolehubah Contoh: Mengapa Senarai Muncul sebagai Kedua-duanya? * Memahami Kelas Python dan Pembolehubah Instance:

Susan Sarandon
Lepaskan: 2024-10-26 01:59:03
asal
302 orang telah melayarinya

Here are a few question-based titles that fit the content of your article:

* Python Class and Instance Variables: Why Does a List Appear as Both?
* Understanding Python Class and Instance Variables: How Do They Work Together?
* Class vs. Instance Variabl

Memahami Kelas Python dan Pembolehubah Instance

Dalam Python, pembolehubah kelas dan instance memainkan peranan penting dalam mentakrif dan mengubah suai gelagat objek. Walau bagaimanapun, ciri-ciri mereka yang berbeza boleh menyebabkan kekeliruan. Artikel ini bertujuan untuk menjelaskan perbezaan mereka dan menerangkan sebab senarai boleh muncul sebagai pembolehubah kelas dan contoh.

Pembolehubah Kelas vs Pembolehubah Instance

Pembolehubah kelas diisytiharkan pada peringkat kelas dan dikongsi oleh semua kejadian kelas itu. Mereka biasanya ditakrifkan di luar kaedah pembina (__init__()). Pembolehubah tika, sebaliknya, adalah khusus untuk setiap tika dan ditakrifkan dalam pembina menggunakan atribut diri.

Contoh 1: Pembolehubah Kelas

Kod berikut mencipta kelas dengan senarai pembolehubah kelas dan pembolehubah contoh self.list:

<code class="python">class testClass():
    list = []  # Class variable
    def __init__(self):
        self.list.append('thing')  # Instance variable</code>
Salin selepas log masuk

Dalam contoh ini, testClass.list ialah pembolehubah kelas yang akan dikongsi oleh semua tika testClass. Apabila pembina dipanggil, ia menambahkan 'benda' pada self.list, mencipta pembolehubah contoh untuk setiap contoh. Akibatnya, apabila anda mengakses p.list dan f.list, kedua-duanya mengeluarkan ['thing'] kerana ia berkongsi pembolehubah kelas yang sama.

Contoh 2: Instance Variable

Sebaliknya, apabila anda mengalih keluar pembolehubah kelas senarai dan mentakrifkannya semula dalam pembina:

<code class="python">class testClass():
    def __init__(self):
        self.list = []
        self.list.append('thing')</code>
Salin selepas log masuk

Setiap contoh testClass kini akan mempunyai pembolehubah contoh self.list sendiri. Apabila anda memanggil p.list dan f.list, kedua-duanya mengeluarkan ['thing'], tetapi ia adalah senarai berasingan yang tidak dikongsi antara kejadian.

Python's Variable Resolution

Tingkah laku ini disebabkan oleh proses resolusi pembolehubah Python. Apabila anda mengakses self.list, Python mula-mula menyemak senarai nama dalam objek contoh. Jika ia tidak ditemui, ia mencari definisi kelas.

Dalam contoh pertama, self.list menyelesaikan kepada pembolehubah kelas kerana tiada nama senarai yang ditentukan dalam tika. Dalam contoh kedua, self.list menyelesaikan kepada pembolehubah instance kerana ia ditakrifkan dalam pembina.

Kesimpulan

Memahami perbezaan antara pembolehubah kelas dan instance adalah penting untuk bekerja dengan berkesan dengan objek Python. Pembolehubah kelas dikongsi oleh semua kejadian, manakala pembolehubah contoh adalah khusus untuk setiap objek. Proses peleraian pembolehubah Python menentukan pembolehubah mana yang diakses apabila anda menggunakan self.variable_name.

Atas ialah kandungan terperinci Berikut ialah beberapa tajuk berasaskan soalan yang sesuai dengan kandungan artikel anda: * Kelas Python dan Pembolehubah Contoh: Mengapa Senarai Muncul sebagai Kedua-duanya? * Memahami Kelas Python dan Pembolehubah Instance:. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!