Python language hack for C-style programmers [DO NOT USE!] :-)

Peter Otten __peter__ at web.de
Fri Mar 28 08:46:29 CET 2014


Chris Angelico wrote:

> On Fri, Mar 28, 2014 at 12:44 PM, Dave Angel <davea at davea.name> wrote:
>>> 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.
> 
> Yeah, but only a for, AFAIK. Not an if or a while.

Why would you guess if you can check? Just fire up the interactive 
interpreter^W^W compiler:

$ cat ifdecl.c
#include <stdio.h>

int main()
{
  if(int i=42)
    printf("%d\n", i);
}
$ gcc ifdecl.c
ifdecl.c: In function ‘main’:
ifdecl.c:5:6: error: expected expression before ‘int’
   if(int i=42)
      ^
ifdecl.c:6:20: error: ‘i’ undeclared (first use in this function)
     printf("%d\n", i);
                    ^
ifdecl.c:6:20: note: each undeclared identifier is reported only once for 
each function it appears in
$ g++ ifdecl.c
$ ./a.out 
42





More information about the Python-list mailing list