On Wed, Dec 1, 2021 at 10:30 PM André Roberge <andre.robe...@gmail.com> wrote: > On Wed, Dec 1, 2021 at 2:17 AM Chris Angelico <ros...@gmail.com> wrote: >> >> I've just updated PEP 671 https://www.python.org/dev/peps/pep-0671/ >> with some additional information about the reference implementation, >> and some clarifications elsewhere. >> >> *PEP 671: Syntax for late-bound function argument defaults* >> >> Questions, for you all: >> >> 1) If this feature existed in Python 3.11 exactly as described, would >> you use it? >> > Currently, I'm thinking "absolutely not". > > However, I thought the same about the walrus operator and I now miss not > being able to use it in a program that includes support for Python 3.6 and > where I have literally dozens of places where I would use it if I could.
Very fair :) >> 2) Independently: Is the syntactic distinction between "=" and "=>" a >> cognitive burden? > > Yes. > I really think that using a keyword like defer, or from_calling_scope ;-), > would significantly reduce the cognitive burden. Also fair. I'm not a fan of keywords for this sort of thing, since it implies that you could do this: def f(x=defer []): ... dflt = defer [] def f(x=dflt): ... which is a completely different proposal (eg it would be evaluated only when you "touch" that, rather than being guaranteed to be evaluated before the first line of the function body). That's why I want to adorn the equals sign and nothing else. >> 4) If "no" to question 1, is there some other spelling or other small >> change that WOULD mean you would use it? (Some examples in the PEP.) > > > *Perhaps* if a keyword would be used instead of symbols, I might reconsider. > > I find the emphasis of trying to cram too much information in single lines of > code to be really a burden. Many years ago, I argued very unsuccessfully for > using a 'where:' code block for annotations. (To this day, I still believe > it would make the code much more readable, at the cost of a slight > duplication.) Using what is at first glance a cryptic operator like => for > late binding is not helping readability, especially when type annotations are > thrown in the mix. > > Aside: at the same time, I can see how using => instead of lambda as a > potential win in readability, including for beginners. It's interesting how different people's views go on that sort of thing. It depends a lot on how much people expect to use something. Features you use a lot want to have short notations, features you seldom use are allowed to have longer words. >> 5) Do you know how to compile CPython from source, and would you be >> willing to try this out? Please? :) > > > Sorry, I'm not interested enough at this point but, given the amount of work > you put into this, I decided that the least I could do is provide feedback > rather than be a passive reader. That's absolutely fine. I don't by any means expect everyone to be able or willing to compile CPython. Feedback is absolutely appreciated, and I asked the question with full expectation of getting a few "No" responses :) Thank you for taking the time to respond. Thoughtful feedback is incredibly helpful. 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/WTU355AA46KWI6QJNMC3HR52SEEXQS65/ Code of Conduct: http://python.org/psf/codeofconduct/