[Python-Dev] 'hasattr' is broken by design
P.J. Eby
pje at telecommunity.com
Mon Aug 23 22:00:06 CEST 2010
At 12:47 PM 8/23/2010 -0700, Raymond Hettinger wrote:
>As your example shows, property() defeats this intent by actually executing
>the code. A better behavior would not run the code at all. It would check
>the dictionaries along the MRO but not execute any descriptors associated
>with a given key.
That just introduces a new class of error when the descriptor can
raise AttributeError (e.g. __slots__ descriptors). And of course, it
ignoress __getattr__ and __getattribute__.
More information about the Python-Dev
mailing list