
On Tue, Oct 26, 2021 at 1:35 PM Ethan Furman <ethan@stoneleaf.us> wrote:
to PASS SOMETHING that says "give me the default". With this proposed API, we don't have that; the only want to say "give me the default" is to NOT pass something.
but that, in fact, is all that Python provides. yes, None indicating "use the default" is a very common idiom, but it is only an convention, and you can't be sure it will work with every API. Not passing a value is the only way to indicate that, well, you have not passed a value ;-) I think this ideas is addressing two related issues: 1) we have to write extra boilerplate code to process mutable (or calculated) default arguments. 2) There is no well defined way to specify "not specified" -- None is a convention, but it isnot used everywhere, and there are some places it can't be used, as None is heavily overloaded and is a valid value in some cases. When this PEP originally came out I thought that passing None was the way
to trigger it -- if that's not the case, and there is nothing we can pass to trigger it, I am much less interested.
See (2) above -- we really should not make None an "official" way to specify not-set, or use-default. If we wanted to, we could create a new standard sentinel for that, say "MISSING", and then allow folks to use that, or omit the argument. But frankly, I don't see the point. we already have the args tuple and kwargs dict -- it is not hard to omit items from those. But in a previous thread, I argued for a handful of standard sentinels so that we wouldn't have to overload None so much -- so MISSINGdoes have it's appeal. -CHB -- Christopher Barker, PhD (Chris) Python Language Consulting - Teaching - Scientific Software Development - Desktop GUI and Web Development - wxPython, numpy, scipy, Cython