Class: @property -> .__dict__
Peter Otten
__peter__ at web.de
Fri Dec 16 04:32:45 EST 2011
More information about the Python-list mailing list
Fri Dec 16 04:32:45 EST 2011
- Previous message (by thread): Class: @property -> .__dict__
- Next message (by thread): Class: @property -> .__dict__
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Ulrich wrote:
> if I replace it to
> def attributelist(self):
> # find all attributes to the class that are of type numpy
> arrays:
> return [attr for attr in dir(self) if
> isinstance(getattr(self, attr), numpy.ndarray)]
>
> it crashes going into some kind of endless loop.
>
> Do you happen to have any idea?
dir(self) finds an attribute named "attributelist", getattr(self,
"attributelist") then tries to calculate the value of that attribute,
invokes dir(self) which finds an attribute named "attributelist" and so on
ad infinitum or the stack overflows. Try (untested)
@property
def attributelist(self):
return [attr for attr in dir(self) if attr != "attributelist" and
isinstance(getattr(self, attr), numpy.ndarray)]
to avoid the infinite recursion.
- Previous message (by thread): Class: @property -> .__dict__
- Next message (by thread): Class: @property -> .__dict__
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list