[Python-Dev] PEP 275: "Switching on Multiple Values", Rev 1.1
Thomas Wouters
thomas@xs4all.net
Tue, 13 Nov 2001 20:16:56 +0100
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*.
> Hmm, you would probably need a tuple-based switch as well:
> switch type(x), type(y):
> case int, int:
> ....
I think you mean 'case (int, int):' there. Constant-tuples aren't really a
problem to implement, though it would require either a lot of code
duplication or a bit of refactoring, which is why my proof-of-concept
doesn't offer them.
--
Thomas Wouters <thomas@xs4all.net>
Hi! I'm a .signature virus! copy me into your .signature file to help me spread!