[Python-ideas] __missing__ object/keyword

George Sakkis george.sakkis at gmail.com
Thu Nov 6 22:15:49 CET 2008


On Thu, Nov 6, 2008 at 3:47 PM, Greg Falcon <veloso at verylowsodium.com>wrote:

On Thu, Nov 6, 2008 at 3:31 PM, George Sakkis <george.sakkis at gmail.com>
> wrote:
> > Several times I find myself using the following idiom:
> >
> > _Missing = object()   # sentinel
> >
> > def foo(x, y=_Missing):
> >   if y is _Missing:
> >     do_this
> >   else:
> >     do_that
>
> > It would be nice if a new object or keyword, say __missing__, was
> > introduced as a canonical way to address this common scenario.
>
> > Thoughts ?
>
> This has been proposed and shot down before:
>
> http://mail.python.org/pipermail/python-dev/2007-May/073439.html
>
> The older proposal didn't give __missing__ the special run-time and
> compile-time error behaviors,


I agree that it doesn't make sense without special compile/runtime behavior;
that would be like adding a second None.


> but this actually just makes things
> worse. Why complicate the language merely to save a single idiomatic
> line of code dealing with a relatively infrequent use-case?


I can't tell how much it would complicate the implementation of the language
but the semantics are pretty straightforward. But you have a point there,
None is more often than not an adequare sentinel, so if implementing
__missing__ requires significant work it's probably not worth the effort.

George
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20081106/f5f7033d/attachment.html>


More information about the Python-ideas mailing list