Unpacking extension (Re: A small inconsistency in syntax?)

Greg Ewing greg at cosc.canterbury.ac.nz
Wed Oct 31 04:52:17 CET 2001


Bernhard Herzog wrote:
> 
> p = Pair(17, 42)
> a, b = p
> 
> The only thing it doesn't do is checking whether p is an instance of
> Pair as your proposal would but that's better done with a separate test,
> anyway, IMO.

This is actually part of a larger idea I've been
thinking about for a while, and that's to give
Python some of the flavour of the pattern-matching
case statements found in functional languages,
so you can write things like

   case foo:
     Nothing():
       print "We got nada"
     Pair(Furble(p, q), Furble(r, s)):
       print "We got a pair of furbles"
     Pair(a, b):
       print "We got a pair of something else"
     x:
       print "We got something else"

Of course, you could always write out the tests using
if-elif-else. But note the distinction between the
second and third cases, which would be somewhat tedious
to write out that way.

-- 
Greg Ewing, Computer Science Dept, University of Canterbury,	  
Christchurch, New Zealand
To get my email address, please visit my web page:	  
http://www.cosc.canterbury.ac.nz/~greg



More information about the Python-list mailing list