On Sun, Dec 5, 2021 at 3:08 PM Stephen J. Turnbull
<stephenjturnb...@gmail.com> wrote:
>
> Barry Scott writes:
>
>  > There are many possible implementation of the late bound idea that
>  > could create an object/default expression.
>  > But is it reasonable to bother with that added
>  > complexity/maintenance burden for a first implementation.
>
> Yes.  If you don't do it, you'll have backward compatibility issues or
> technical debt.
>
> I'm not saying that's a compelling argument here, except that one of
> the main alleged problems is that users don't understand mutable
> defaults.  So adding more and more layers of support for default
> arguments is making matters worse, I suspect.  (Remember, they're
> going to be reading "arg=None" and "@arg=[]" for a long long time.)
>
> This one is Worth Doing Right the first time, I think.  And IMO David
> Mertz is right: doing it right means a more general deferred-evaluation
> object (not to be confused with Deferreds that need to be queried
> about their value).

If you think that deferred evaluation objects are the right way to do
it, then write up a proposal to compete with PEP 671. In my opinion,
it is a completely independent idea, which has its own merit, and
which is not a complete replacement for late-bound defaults; the two
could coexist in Python simultaneously, or either one could be
accepted without the other, or we could continue to have neither. Yes,
there's some overlap in the problems they solve, just as there's
overlap between PEP 671 and PEP 661 on named sentinels; but there's
also overlap between plenty of other language features, and we don't
deem try/finally or context managers to be useless because of the
other.

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

Reply via email to