
On 2021-10-31 05:57, Chris Angelico wrote:
Deferred expressions are not the same as late-bound argument defaults.
You keep saying this, but I still don't get the point. Descriptors are not the same as properties, but we can implement properties with descriptors. Decorators are not the same as callables, but we can implement decorators with callables. The plus sign is not the same as an __add__ method, but we can define the implementation of + in terms of __add__ (and __radd__) methods on objects.
As far as I can tell the only real difference is that you seem very intent on the idea that the default argument is ONLY evaluated right at the beginning of the function and not later. But so what? A general deferred expression would still allow you to do that, it would just also allow you to evaluate the deferred expression at some other point. Wonderful! +1,000,000. So are you going to write a PEP explaining exactly how you propose to implement deferred expressions and how they would be used? And perhaps
On 31/10/2021 18:00, Brendan Barnwell wrote: provide a reference implementation? Then we can see how it works, and how it can be used to replace or improve PEP 671? Say, next month? I really don't want to be rude, but I can't think of anything more appropriate to express my frustration/impatience (and I'm not the one doing the work! I can only guess how Chris A feels) with this foot-dragging, than the adage (possibly from poker): "Put up or shut up". The first car would never have been built (in 1885 or thereabouts) if the investors had insisted it wasn't worth doing unless it had air bags, satellite GPS, in-car radio and cruise control. PEP 671 will be USEFUL to Python programmers. We want it! (When do we want it? Now!) Best wishes Rob Cliffe
[snip]