Chris Angelico <ros...@gmail.com> Wrote in message: > On Fri, Mar 28, 2014 at 3:08 AM, Tim Chase > <python.l...@tim.thechases.com> wrote: >> Multiple times, I've seen someone want something like what C-style >> languages offer where assignment is done in a test, something like >> >> if (m = re.match(some_string)): >> do_something(m) > > If you want a language where you can do this sort of thing, but the > semantics are like Python's (first-class complex objects, garbage > collection, references instead of pointers, pass-by-object, etc), > check out Pike. Its syntax is very much C's, or C++'s or Java's if you > prefer, but it functions very much the way Python does. You can even - > and you can't do this in C or, to my knowledge, C++ - declare a > variable inside an if, which is valid only in the body of that if: > > if (array m = Regexp.split2(some_pattern, some_string)) > do_something(m); >
I don't know for certain about if, but you can declare (in C++) a new variable in for, which is a superset of if. Scope ends when the for does. -- DaveA -- https://mail.python.org/mailman/listinfo/python-list