__dir__

Jacek Generowicz jacek.generowicz at cern.ch
Thu May 13 04:40:10 EDT 2004


Is there some way of affecting the way dir finds the information it presents?

For example, supposing a hypothetical __dir__ magic method:

class collection:
    def __init__(self, myname, names):
        self.names = names
        self.myname = myname
    def __dir__(self):
        return ['%s(%s)' % (self.myname,n) for n in self.names]

class thingy:
    def __init__(self, *names):
        self.it = collection('it', names)

thing = thingy('this', 'that', 'theother')

dir(thing) 

['__doc__', '__init__', '__module__', 'it(this)', 'it(that)', 'it(theother)']


In other words, I would like some attributes of an instance to inject
some information into the output of dir ... to change the way their
names are perceived by dir.

Any ideas ?



More information about the Python-list mailing list