On Fri, 8 Apr 2022 at 16:40, Guido van Rossum <gu...@python.org> wrote:
> The interesting idea here seems to make "lazy imports" easier to implement by 
> making them explicit in the code. So far, most lazy import frameworks for 
> Python have done hacks with `__getattribute__` overrides. IIRC the Cinder 
> version even modifies the bytecode and/or the interpreter. Disregarding the 
> specific notation proposed, *if* people would be willing to mark the points 
> where they expect lazy imports explicitly, that would make implementation 
> much simpler.

Actually, to me the interesting idea is not so much lazy imports – I
think they should not be lazy, at least that was my initial thought. I
think they should be immediately resolved before anything else in that
module:

1. This would settle any discussion about performance impact (there
wouldn't be any).
2. This would enable IDEs, typers and other tooling to know the type
using existing import logic.
3. Catch errors early!

Notation is hard of course. Would users be willing to use it? I think
so, at least in Rust, people do use it and I think just in the right
places – typically for imports that are either "canonicalized" such as
`re.compile` is in Python, or used just once.

Cheers
_______________________________________________
Python-Dev mailing list -- python-dev@python.org
To unsubscribe send an email to python-dev-le...@python.org
https://mail.python.org/mailman3/lists/python-dev.python.org/
Message archived at 
https://mail.python.org/archives/list/python-dev@python.org/message/NKBWGPJRKYQX4Z4WDDD74CSV4XEBGTFD/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to