13.09.17 23:07, Lucas Wiman пише:
On Wed, Sep 13, 2017 at 11:55 AM, Serhiy Storchaka
<storch...@gmail.com
<mailto:storch...@gmail.com>> wrote:
[...] Calling __getattr__() will slow down the access to builtins.
And there is a recursion problem if module's __getattr__() uses
builtins.
The first point is totally valid, but the recursion problem doesn't
seem like a strong argument. There are already lots of recursion
problems when defining custom __getattr__ or __getattribute__ methods,
but on balance they're a very useful part of the language.
In normal classes we have the recursion problem in __getattr__() only
with accessing instance attributes. Builtins (like isinstance, getattr,
AttributeError) can be used without problems. In module's __getattr__()
all this is a problem.
Module attribute access can be implicit. For example comparing a string
with a byte object in __getattr__() can trigger the lookup of
__warningregistry__ and the infinity recursion.
_______________________________________________
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/