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).
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4