Menjejak Kejadian Kelas untuk Pengumpulan Data
Bayangkan anda menghampiri penghujung program anda dan anda perlu mengekstrak pembolehubah tertentu daripada berbilang contoh kelas untuk mengisi kamus. Tugas ini mungkin timbul apabila bekerja dengan objek yang menyimpan data penting yang anda perlukan untuk mengagregat atau menganalisis.
Untuk menggambarkan masalah, pertimbangkan struktur kelas yang dipermudahkan ini:
<code class="python">class Foo(): def __init__(self): self.x = {} foo1 = Foo() foo2 = Foo()</code>
Sekarang, mari kita anggap anda ingin mengumpul kamus x daripada setiap tika Foo() ke dalam kamus baharu, tanpa mengira bilangan tika.
Secara tradisinya, penyelesaian selalunya bergantung pada mempunyai senarai kejadian yang telah ditetapkan. Walau bagaimanapun, dalam senario praktikal, bilangan kejadian mungkin berbeza-beza dan anda mungkin tidak mempunyai akses segera kepada senarai mereka.
Satu penyelesaian berkesan untuk menjejaki kejadian kelas ialah dengan menggunakan pembolehubah kelas:
<code class="python">class A(object): instances = [] def __init__(self, foo): self.foo = foo A.instances.append(self)</code>
Dengan pendekatan ini, setiap kali tika A dicipta, ia ditambah secara automatik pada senarai tika. Pada penghujung program anda, anda boleh dengan mudah mengakses senarai kejadian dan mengekstrak data yang dikehendaki untuk kamus anda:
<code class="python">foo_vars = {id(instance): instance.foo for instance in A.instances}</code>
Dengan mengekalkan senarai kejadian tunggal, anda boleh menjejak dan mengakses semua kejadian kelas A dengan mudah. . Pendekatan ini menyediakan cara yang dinamik dan fleksibel untuk mengumpulkan data daripada kejadian kelas anda, walaupun bilangannya tidak diketahui atau berubah.
Atas ialah kandungan terperinci Bagaimanakah saya boleh Menjejak dan Mengakses Semua Kejadian Kelas untuk Pengumpulan Data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!