On 2013-06-20 21:40, Roy Smith wrote: > In article <mailman.3647.1371777895.3114.python-l...@python.org>, > Tim Chase <python.l...@tim.thechases.com> wrote: > > > On 2013-06-21 01:08, Steven D'Aprano wrote: > > > Here's my syntax plucked out of thin air: > > > > > > def func(arg, x=expression, !y=expression): > > > ... > > > > > > where y=expression is late-bound, and the above is compiled to: > > > > > > def func(arg, x=expression, y=None): > > > if y is None: > > > y = expression > > > ... > > > > I think it would have to translate to something like > > > > _temp_semaphore = object() > > def func(arg, x=expression, y=_temp_semaphore): > > if y is _temp_semaphore: > > y = expression > > > > ... > > You can go around and around on that one. Whatever distinguished > value you set aside to mean "no argument passed", somebody will > come up with a use case for why they might want to pass that as a > real value.
That's why I suggested using an "is" test against a custom/local(ish) semaphore instance that is only used for the particular invocation in which the "def" statement occurs. -tkc -- http://mail.python.org/mailman/listinfo/python-list