Python:如何检查变量是否已经声明

时间:2014-02-14 19:59:43

标签: python variables declaration

在处理许多if / elif / else时,如果已经声明了变量,我有时会松开轨道。我想知道一种简单的方法来检查变量foo是否已经被声明。什么是最简单的语法来实现它?

P.S。有趣的是看看如何使用globals()和locals()来实现这一目标。

编辑:

我最终使用了:

if not 'myVariableName' in globals().keys(): myVariableName='someValue'

很难跟踪何时何地 app = QtGui.QApplication(sys.argv)已经被宣布,特别是在一个gui模块调用另一个gui模块的情况下,反之亦然。

如果globals()(似乎)中的'app'有助于避免意外变量重新声明。

2 个答案:

答案 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:

我认为这样做的主要优点是

  1. 您永远不会意外引发NameError。
  2. 代码中将有一个位置,其中包含所有变量 介绍,所以你的代码读者不必怀疑是什么 变量在起作用。

  3. 顺便说一下,在__init__中定义所有实例属性同样是个好主意,因此毫无疑问实例可能具有哪些属性。

相关问题