[Python-Dev] PEP 275: "Switching on Multiple Values", Rev 1.1
M.-A. Lemburg
mal@lemburg.com
Thu, 15 Nov 2001 11:07:40 +0100
"M.-A. Lemburg" wrote:
>
> Thomas Wouters wrote:
> >
> > On Tue, Nov 13, 2001 at 03:32:55PM +0100, Jack Jansen wrote:
> >
> > > Even though I'm not sure I like the switch idea (and I won't even contemplate
> > > how Guido will react when he comes back and sees what we've been spending our
> > > time on:-) there's one very special case of switch that I would like, and
> > > that's the Algol 68 style switch on type. If we had something like
> > > def foo(x):
> > > switch type(x):
> > > case int:
> > > do something
> > > case string:
> > > do something else
> > > this would be a nice point to hook into for something that tries to compile
> > > Python to C or somesuch.
> >
> > Unfortunately, type-names/objects aren't compile-time constants, so we can't
> > implement this without some kind of namespace-modification-notification
> > technique. Hmm... Or perhaps we could do the normal lookup, compare the
> > then-current 'int' vs. the one we looked up, and if they aren't equal
> > re-initialize the jump dict.... But *shudder*.
>
> Dang. You're right -- I overlooked that "detail".
After some more tweaking... how's this:
switch type(x).__name__:
case 'int':
SUITE
case 'string':
SUITE
(note the string constants)
--
Marc-Andre Lemburg
CEO eGenix.com Software GmbH
______________________________________________________________________
Consulting & Company: http://www.egenix.com/
Python Software: http://www.lemburg.com/python/