我看到可以在范围内定义一个变量,但是然后在该范围之外引用它.例如,以下代码有效:
if condition:
x = 5
else:
x = 10
print x
Run Code Online (Sandbox Code Playgroud)
然而,这让我觉得有些奇怪.如果您尝试在C中执行此操作,则变量X将无法正确确定范围:
if(condition) { int x = 5; }
else { int x = 10; }
print x; // Doesn't work: x is unavailable!
Run Code Online (Sandbox Code Playgroud)
无论如何,在C中的解决方案是首先声明X,然后找出它的作用:
int x;
if(condition) { x = 5; }
else { x = 10; }
print x; // Works!
Run Code Online (Sandbox Code Playgroud)
所以,在Python中,我的直觉就是编写如下代码:
x = None
if condition:
x = 5
else:
x = 10
print x
Run Code Online (Sandbox Code Playgroud)
但是,我意识到Python并不要求我这样做.有什么建议?这种情况是否有样式指南?
Ign*_*ams 17
块不会在Python中创建新范围.模块,类和函数都可以.
也:
x = 10
if condition:
x = 5
print x
Run Code Online (Sandbox Code Playgroud)
要么:
x = 5
if not condition:
x = 10
print x
Run Code Online (Sandbox Code Playgroud)