我目前正在用Python开发一些东西,我对变量范围有疑问.
这是代码:
a = None
anything = False
if anything:
a = 1
else:
a = 2
print a # prints 2
Run Code Online (Sandbox Code Playgroud)
如果我删除第一行(a = None),代码仍然像以前一样工作.但是在这种情况下,我将在"if"块中声明变量,并且对于其他语言(如Java),该变量只能在"if"中可见.
Python中确切的变量范围如何工作以及在这种情况下编程的好方法是什么?
谢谢!
根据经验,范围是在三个地方创建的:
class块内创建def块内创建(这些例外有一些例外.)
分配给名称会将其保留在范围名称空间中,标记为未绑定,直到达到第一个分配.因此,对于心智模型,您要为范围中的名称指定值.