对 python 局部变量作用域的不解
python 局部变量只是针对函数、类、模块而言的,这一点不如 C/C++ 语言那样细腻。
譬如下面的 C 代码是错误的:
... ...
if (1)
int a = 3;
print ("%d\n",a);
... ...
if (1)
int a = 3;
print ("%d\n",a);
... ...
但是下面的 python 代码却是正确的:
... ...
if True:
a = 3
print a
... ...
if True:
a = 3
print a
... ...
令我不解的是下面这样的 python 代码却是错误的:
... ...
if True:
a = 3
else:
print a
... ...
if True:
a = 3
else:
print a
... ...

2007年10月08日 01:28 ruby 中 if else 并不会出错
2009年2月08日 12:10
貌似没有问题啊……
是因为if-else是分步执行的吧?程序执行到else后面有未定义的变量,所以报错?(源文件应该不会这么定义吧?试了一下,你这样写是可以的,版本python2.5)