Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menjejak dan Mendapatkan Pembolehubah Contoh dengan Cekap dalam Kelas Python?

Bagaimana untuk Menjejak dan Mendapatkan Pembolehubah Contoh dengan Cekap dalam Kelas Python?

Susan Sarandon
Susan Sarandonasal
2024-10-27 07:37:02430semak imbas

 How to Efficiently Track and Retrieve Instance Variables in Python Classes?

Menjejaki Kejadian Kelas untuk Koleksi Pembolehubah

Mengekalkan senarai kejadian untuk kelas tertentu membolehkan pengambilan semula pembolehubah tertentu yang cekap daripada setiap tika di peringkat program kemudian.

Pendekatan Pembolehubah Kelas

Kaedah yang sesuai untuk menjejak kejadian kelas ialah menggunakan pembolehubah kelas. Contoh berikut menggambarkan pendekatan ini:

class Foo:
    instances = []

    def __init__(self):
        self.x = {}
        Foo.instances.append(self)

Teknik ini mencipta contoh senarai kongsi dalam kelas. Memandangkan setiap tika dibuat, ia melampirkan dirinya pada senarai.

Mendapatkan Kembali Pembolehubah Contoh

Untuk mengumpul x kamus daripada semua kejadian pada akhir program, cipta kamus baharu:

foo_vars = {id(instance): instance.x for instance in Foo.instances}

Di sini, id() menyediakan pengecam unik untuk setiap tika, membolehkan penciptaan kamus dengan ID tika sebagai kunci dan kamus x sebagai nilai.

Senarai Dikongsi

Pendekatan pembolehubah kelas memastikan bahawa hanya satu senarai, kejadian, dikekalkan merentas semua kejadian, tanpa mengira bilangannya. Ini menghapuskan keperluan untuk menjejaki senarai individu untuk setiap contoh.

Atas ialah kandungan terperinci Bagaimana untuk Menjejak dan Mendapatkan Pembolehubah Contoh dengan Cekap dalam Kelas Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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