Optional arguments syntax (was Re: sum() requires number, not simply __add__)
Chris Angelico
rosuav at gmail.com
Thu Feb 23 17:11:51 EST 2012
More information about the Python-list mailing list
Thu Feb 23 17:11:51 EST 2012
- Previous message (by thread): sum() requires number, not simply __add__
- Next message (by thread): Please verify!!
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Fri, Feb 24, 2012 at 9:09 AM, Arnaud Delobelle <arnodel at gmail.com> wrote: > On 23 February 2012 22:04, Chris Angelico <rosuav at gmail.com> wrote: >> On Fri, Feb 24, 2012 at 8:59 AM, Arnaud Delobelle <arnodel at gmail.com> wrote: >>> def sum(iterable, start=_sentinel, _sentinel=_sentinel): >> >> Is this a reason for Python to introduce a new syntax, such as: >> >> def foo(blah, optional=del): >> if optional is del: print("No argument was provided") >> >> Basically, 'del' is treated like a unique non-providable object, only >> possible in an argument list and only if the argument was omitted. No >> more proliferation of individual sentinels... what do you think? > > The problem with these proposals is to avoid the leakage of 'del'. > Here you could do: > > def get_del(x=del): > return x > > And then you're in trouble again. Yep; what I was thinking was that this would be a magic token that, if used in any expression other than "is del", would decay to some other object such as 0 or None. Otherwise, yeah, there's no difference between that and any other global sentinel. ChrisA
- Previous message (by thread): sum() requires number, not simply __add__
- Next message (by thread): Please verify!!
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list