在Python中,如何检查变量是否存在?

TIM*_*MEX 1 python variables debugging object

如果存在"x",则打印"x exists".

我问这个因为我总是得到这个错误:

UnboundLocalError at /settings/
local variable 'avatarlink' referenced before assignment
Run Code Online (Sandbox Code Playgroud)

Kar*_*tel 6

为什么你需要知道?如果代码因此而中断,那可能是因为代码无论如何都是错误的,需要修复。

也就是说,根据您期望的位置,尝试检查if 'x' in locals()if 'x' in globals()

  • 虽然这确实是您问题的正确答案,但还请考虑 Karl 的评论,即如果您需要使用这样的检查,您的代码可能已损坏。您目前正在治疗症状,而不是原因,这总是一个坏主意。 (3认同)
  • 为了澄清起见,您需要引用名称(locals() 中的“avatarlink”)。但第一段是真正的解决方案。+1 (2认同)

Dan*_*man 5

正如他们在Python中所言,"请求宽恕而非许可更好".因此,只需尝试访问变量,并捕获错误(如果它不存在).

try:
    x
    print "x exists"
except UnboundLocalError:
    print "x doesn't exist"
Run Code Online (Sandbox Code Playgroud)

但是,我真的很想知道为什么你认为你需要这样做.通常,您始终在检查其值之前设置变量.