On 09/10/13 00:33, Larry Hastings wrote: > > I've contributed a new PEP to humanity. I include the RST for your > reading pleasure below, but you can also read it online here: > > http://www.python.org/dev/peps/pep-0457/ Overall I'm in favour. As a motivation for positional only parameters, consider: Python 3.2: >>> from decimal import Decimal >>> d = Decimal(4) >>> d.__add__(other=d) Decimal('8') Python 3.3: >>> from decimal import Decimal >>> d = Decimal(4) >>> d.__add__(other=d) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: wrapper __add__ doesn't take keyword arguments [snip] > The obvious solution: add a new singleton constant to Python > that is passed in when a parameter is not mapped to an argument. > I propose that the value be called called ``undefined``, > and be a singleton of a special class called ``Undefined``. > If a positional-only parameter did not receive an argument > when called, its value would be set to ``undefined``. There is no need to create an "undefined" value. Rather than define a parameter by assigning a fake value, just don't define it. We already do this for non-parameter locals and it could be extended to parameters. 'range' would be defined thus: def range([start,] stop, [step], /): try: start except UnboundLocalError: start = 0 try: step except UnboundLocalError: step = 1 ... Cheers, Mark.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4