On Wed, Jun 14, 2017 at 8:09 AM, Terry Reedy <[email protected]> wrote:
> Perhaps you are looking for __dir__, called by dir().
>
> " dir([object])
>
> Without arguments, return the list of names in the current local scope.
> With an argument, attempt to return a list of valid attributes for that
> object.
>
> If the object has a method named __dir__(), this method will be called
> and must return the list of attributes."
AIUI the OP is looking to implement __dir__, but make use of *what
dir() would have returned* in that function. Something like:
class Magic:
def __getattr__(self, attr):
if attr in self.generatables:
return self.generated_value(attr)
raise AttributeError
def __dir__(self):
return default_dir(self) + self.generatables
For that purpose, is it possible to use super().__dir__()? Are there
any considerations where that would fail?
ChrisA
_______________________________________________
Python-ideas mailing list
[email protected]
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/