在任何语言中使用尚未定义或设置(隐式或显式)的变量通常是一件坏事,因为它往往表明程序的逻辑还没有考虑周全,可能会导致不可预知的行为。
如果您需要在 Python 中执行此操作,则与您的类似的以下技巧将确保变量在使用前具有 some 值:
try:
myVar
except NameError:
myVar = None # or some other default value.
# Now you're free to use myVar without Python complaining.
但是,我仍然不相信这是一个好主意 - 在我看来,您应该尝试重构您的代码,以免发生这种情况。
作为示例,下面的注释中给出了以下代码,以允许从前一点到当前点绘制线条:
if last:
draw(last, current);
last = current
如果last 没有绑定到一个值,这在Python 中根本没有帮助,因为即使是last 的检查 也会引发异常。一个更好的主意是确保last 确实 有一个值,可以用来决定它是否有效。那将是这样的:
last = None
# some time passes ...
if last is not None:
draw(last, current);
last = current
这样可以确保变量存在,并且只有在它对您需要的目的有效时才使用它。这就是我假设 if last 是 意味着 在评论代码中做的(但没有),如果你仍然可以将代码添加到 force无法控制变量的初始设置,使用上面的异常方法:
# Variable 'last' may or may not be bound to a value at this point.
try:
last
except NameError:
last = None
# It will always now be bound to a value at this point.
if last is not None:
draw(last, current);
last = current