With a class in Python, how do I define a function to print every single instance of the class in a format defined in the function?
相关问题
- how to define constructor for Python's new Nam
- streaming md5sum of contents of a large remote tar
- How to get the background from multiple images by
- Evil ctypes hack in python
- Correctly parse PDF paragraphs with Python
I see two options in this case:
Garbage collector
This has the disadvantage of being very slow when you have a lot of objects, but works with types over which you have no control.
Use a mixin and weakrefs
In this case, all the references get stored as a weak reference in a list. If you create and delete a lot of instances frequently, you should clean up the list of weakrefs after iteration, otherwise there's going to be a lot of cruft.
Another problem in this case is that you have to make sure to call the base class constructor. You could also override
__new__
, but only the__new__
method of the first base class is used on instantiation. This also works only on types that are under your control.Edit: The method for printing all instances according to a specific format is left as an exercise, but it's basically just a variation on the
for
-loops.