在处理许多if / elif / else时,如果已经声明了变量,我有时会松开轨道。我想知道一种简单的方法来检查变量foo是否已经被声明。什么是最简单的语法来实现它?
P.S。有趣的是看看如何使用globals()和locals()来实现这一目标。
我最终使用了:
if not 'myVariableName' in globals().keys(): myVariableName='someValue'
很难跟踪何时何地
如果globals()(似乎)中的'app'有助于避免意外变量重新声明。
答案 0 :(得分:4)
try:
foo
except NameError:
# does not exist
else:
# does exist
答案 1 :(得分:1)
不要担心是否声明了变量,而是从头开始声明所有变量。您可以为变量赋予一些值,以指示它仍处于初始状态,例如
foo = None
或者,如果您想将None
用于其他目的,可以创建一个唯一值来指示初始状态,例如
INITIAL = object()
foo = INITIAL
稍后,如果您需要检查是否已设置变量,则可以使用if
:
if foo == INITIAL:
我认为这样做的主要优点是
顺便说一下,在__init__
中定义所有实例属性同样是个好主意,因此毫无疑问实例可能具有哪些属性。