[Python-Dev] Comment on PEP 562 (Module __getattr__ and __dir__)
Serhiy Storchaka
storchaka at gmail.com
Sun Nov 19 15:41:52 EST 2017
19.11.17 22:24, Mark Shannon пише:
> Just one comment. Could the new behaviour of attribute lookup on a
> module be spelled out more explicitly please?
>
>
> I'm guessing it is now something like:
>
> `module.__getattribute__` is now equivalent to:
>
> def __getattribute__(mod, name):
> try:
> return object.__getattribute__(mod, name)
> except AttributeError:
> try:
> getter = mod.__dict__["__getattr__"]
> except KeyError:
> raise AttributeError(f"module has no attribute '{name}'")
> return getter(name)
I think it is better to describe in the terms of __getattr__.
def ModuleType.__getattr__(mod, name):
try:
getter = mod.__dict__["__getattr__"]
except KeyError:
raise AttributeError(f"module has no attribute '{name}'")
return getter(name)
The implementation of ModuleType.__getattribute__ will be not changed
(it is inherited from the object type).
More information about the Python-Dev
mailing list