On Wed, Nov 15, 2017 at 8:02 PM, Ethan Furman <ethan at stoneleaf.us> wrote: > On 11/15/2017 04:55 AM, Koos Zevenhoven wrote: > >> On Tue, Nov 14, 2017 at 10:34 PM, Ivan Levkivskyi wrote: >> > > >> Rationale >>> ========= >>> >>> [...] It would be convenient to simplify this >>> procedure by recognizing ``__getattr__`` defined directly in a module >>> that >>> would act like a normal ``__getattr__`` method >>> >> >> > >> [...] > >> > >> Specification >>> ============= >>> >>> >> The ``__getattr__`` function at the module level should accept one > argument > >> which is the name of an attribute and return the computed value or raise >>> an ``AttributeError``:: >>> >> >> def __getattr__(name: str) -> Any: ... >>> >> >> This function will be called only if ``name`` is not found in the module >>> through the normal attribute lookup. >>> >> >> The Rationale (quoted in the beginning of this email) easily leaves a >> different impression of this.​ >> > > I don't see how. This is exactly the way normal __getattr__ works. > > > ​Oh sorry, I think I put this email together too quickly. I was writing down a bunch of thoughts I had earlier but hadn't written down.​ I think I was mixing this up in my head with overriding __getitem__ for the module namespace dict and __class_getitem__ from PEP 560, which only gets called if the metaclass doesn't implement __getitem__ (IIRC). But I did have another thought related to this. I was wondering whether the lack of passing the module to the methods as `self` would harm future attempts to generalize these ideas. -- Koos -- + Koos Zevenhoven + http://twitter.com/k7hoven + -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.python.org/pipermail/python-dev/attachments/20171115/48761bd5/attachment.html>
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