Mencetak Contoh Tertentu Kelas dalam Python
Apabila mentakrifkan kelas Python, ia boleh berguna untuk mencipta fungsi yang mengeluarkan setiap kejadian kelas dalam format tersuai. Terdapat pelbagai pendekatan untuk mencapai matlamat ini.
Menggunakan Pengumpul Sampah
Satu pilihan melibatkan penggunaan pengumpul sampah:
<code class="python">import gc for obj in gc.get_objects(): if isinstance(obj, some_class): dome_something(obj)</code>
Walau bagaimanapun, kaedah ini boleh menjadi lembap apabila berurusan dengan banyak objek dan hanya terpakai untuk jenis dalam kawalan anda.
Menggunakan Mixin dan WeakRefs
Sebagai alternatif, anda boleh melaksanakan mixin dan rujukan lemah seperti berikut:
<code class="python">from collections import defaultdict import weakref class KeepRefs(object): __refs__ = defaultdict(list) def __init__(self): self.__refs__[self.__class__].append(weakref.ref(self)) @classmethod def get_instances(cls): for inst_ref in cls.__refs__[cls]: inst = inst_ref() if inst is not None: yield inst</code>
Pendekatan ini menyimpan rujukan sebagai rujukan lemah dalam senarai. Untuk memastikan kecekapan, pertimbangkan untuk membersihkan weakrefs selepas lelaran, terutamanya apabila berurusan dengan penciptaan dan pemadaman contoh yang kerap. Juga, ambil perhatian bahawa teknik ini terhad kepada kelas di bawah kawalan anda.
Format khusus untuk tika percetakan boleh dilaksanakan melalui gelung untuk tersuai. Melaksanakan format cetakan ini ditinggalkan sebagai latihan untuk pemahaman lanjut.
Atas ialah kandungan terperinci Bagaimana untuk Mencetak Semua Contoh Kelas Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!