On Sun, Nov 29, 2020 at 12:28 PM Brendan Barnwell <[email protected]> wrote:
> For me the only problem with the `x=x` default argument "fix" is > that. > . . well, it's in the argument signature. That means it effectively > becomes part of the function's public API, and people can pass in other > values, which maybe you don't want. Plus it just seems very unclean to > me to have to shoehorn "I want to capture these variables from the > enclosing scope at definition time" into the mechanism for "these are > the arguments you can pass at call time". What we really want is a way > to separate these into orthogonal choices. > But do we? The key to language design is to have as few features as you can that can be combined in as many ways as they can. *That* is what I consider orthogonality (of features). Using argument defaults for a novel purpose scores high according to this, while dedicated syntax as you show below (def f(a, b, c) with x, y: ...) scores low -- it's a new feature that can do only one thing. OTOH if we were to introduce 'let' or 'const' in the language, it would surely be usable to solve a whole bunch of other problems, in addition to giving us a cleaner way to solve the value capture problem. -- --Guido van Rossum (python.org/~guido) *Pronouns: he/him **(why is my pronoun here?)* <http://feministing.com/2015/02/03/how-using-they-as-a-singular-pronoun-can-change-the-world/>
_______________________________________________ Python-ideas mailing list -- [email protected] To unsubscribe send an email to [email protected] https://mail.python.org/mailman3/lists/python-ideas.python.org/ Message archived at https://mail.python.org/archives/list/[email protected]/message/IGMT5S2JZDDOCDLE25AXCBAZ5APP32CV/ Code of Conduct: http://python.org/psf/codeofconduct/
