[Python-3000] parameter lists [was: Type Expressions]

Ron Adam rrr at ronadam.com
Fri Apr 21 20:04:18 CEST 2006


Guido van Rossum wrote:
> On 4/21/06, Ron Adam <rrr at ronadam.com> wrote:
>> Recently I found a case where I wanted to return something that was more
>> literally *nothing* than a None is.  So maybe a null symbol of some sort
>> might be useful in other cases as well?
> 
> You're not gonna get something that's a valid expression *and* is more
> "nothing" than None.

Yes, it would require special casing either by object methods and/or by 
the interpreter to work in a general way.  Which is probably enough of a 
reason not to do it.

> On a case by case basis there might be syntax indicating the absence
> of something that is distinguishable from 'None'; for example, using
> *args you can reliaby whether an argument was passed or not (unlike
> using None as a default, which can be defeated by passing an explicit
> None).

Yes, in cases where containers are used, as in *args, the identity "x == 
x + empty_container"  works.  What I was looking for was the same 
identity operations with an append method.

     x == x.append(foo(y))   # when foo returns a NULL object.

Not that it's a big deal, I just thought it might also fit with Gregs 
suggestion as well where a keyword with a NULL could indicate a defualt 
isn't present and must be supplied when used as a defualt.


 > But a generic NULL won't be part of the language.

I'm fine with that.  I realized it may need a lot more *good* use cases 
to not have the special isn't special enough guide line apply.

Cheers,
    Ron


> --
> --Guido van Rossum (home page: http://www.python.org/~guido/)



More information about the Python-3000 mailing list