On 02/12/2021 14:47, Steven D'Aprano wrote:
On Thu, Dec 02, 2021 at 11:00:33PM +1100, Chris Angelico wrote:
I'm still unsure whether this is a cool feature or an utter abomination:
def f(x=...):
...     try: print("You passed x as", x)
...     except UnboundLocalError: print("You didn't pass x")
...
f.__defaults_extra__ = ("n/a",)
f(42)
You passed x as 42
f()
You didn't pass x
That is absolutely an abomination. If your implementation has the
side-effect that setting a regular early-bound default to Ellipsis makes
the parameter unable to retrieve the default, then the implementation is
fatally broken.

It absolutely is not a feature.


It's backward incompatible:

15:03:04 R:\>python
Python 3.8.3 (tags/v3.8.3:6f8c832, May 13 2020, 22:20:19) [MSC v.1925 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> def f(x=...):
...     try: print("You passed x as", x)
...     except UnboundLocalError: print("You didn't pass x")
...
>>> f()
You passed x as Ellipsis

So I must agree with Steven that this should not be a feature.
Best wishes
Rob Cliffe
_______________________________________________
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/DH5QUOPS3KZGDCHEUIM5CSJOCUOAC2KG/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to