ABCs -> infix syntax for isinstance() ?
bborcic at gmail.com
bborcic at gmail.com
Sun Oct 5 19:59:39 EDT 2008
Bruno Desthuilliers dixit :
> Boris Borcic a écrit :
>
> > Given the ABC innovation, maybe an infix syntax for isinstance() would
> > be good.
>
> > Possibilities :
>
> > - stealing "is" away from object identity. As a motivation, true use
> > cases for testing object identity are rare;
>
> "x is None" is a *very* common test. Using a _marker object as default
> arg value when you want to accept None as a meaningfull value is pretty
> common.
(a) Okay, 3to2 can take care of "x is NoneType" and/or "x == None".
The latter could also be a compiler optimization.
(b) Give me None==False and in exchange I will adopt "x is None" as
sacred forever :)
(not quite BTW, how much future do you think is there in turning 2to3
into some usable 3to2 ? What about "NtoM" as a more generic Python
project ?)
> Testing a class identity often happens when writing metaclasses
This kind-of-talks for Terry's proposition : adding a __contains__ to
type, looks like easier to pass before lead metaclass-writers. Or if
not easier to pass, easier to write a simple patch for. So "x in
Number" syntax.
A intriguing wider proposition would be to transpose Ruby's notion of
"Open Classes" to Python built-in metaclasses (or just to type
itself ?).
Let's threaten lead metaclass-writers with *that* if they don't settle
on just type.__contains__ = lambda cls,i : isinstance(i,cls) !! :)
Cheers, BB
More information about the Python-list
mailing list