[Python-Dev] introducing __dir__?

Nick Coghlan ncoghlan at gmail.com
Fri Jul 7 13:55:45 CEST 2006

Fred L. Drake, Jr. wrote:
> On Thursday 06 July 2006 13:22, tomer filiba wrote:
>  > my suggestion is simple -- replace this mechanism with a __dir__ -
>  > a special method that returns the list of attributes of the object.
>  >
>  > rationale:
>  > * remove deprecated __methods__, etc.
>  > * symmetry -- just like hex() calls __hex__, etc.
>  > * __methods__ and __members__ are lists rather than callable
>  > objects, which means they cannot be updated on-demand
> +1

+1 here, too.

It would also allow objects which override __getattribute__ and/or __getattr__ 
to make dir() provide a sane answer (or raise an exception to indicate that a 
sane answer isn't possible). (This was something that actually came up when 
trying to implement a namespace object that *didn't* automatically fall back 
to its class namespace for Python level attribute access)

For backwards compatibility, dir() could still fall back to the current 
mechanism if __dir__ isn't found.


Nick Coghlan   |   ncoghlan at gmail.com   |   Brisbane, Australia

More information about the Python-Dev mailing list