关于调试:在Python中,如何检查变量是否存在?

In Python, how do I check if a variable exists?

本问题已经有最佳答案,请猛点这里访问。

如果"X"存在,则打印"X存在"。

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

1
2
UnboundLocalError at /settings/
local variable 'avatarlink' referenced before assignment


正如他们在Python中所说,"请求宽恕总比请求允许好"。所以,只需尝试访问变量,如果它不存在,就捕获错误。

1
2
3
4
5
try:
    x
    print"x exists"
except UnboundLocalError:
    print"x doesn't exist"

不过,我很想知道你为什么认为你需要这样做。通常,在检查变量值之前,您总是先设置变量。


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

也就是说,试着检查if 'x' in locals()if 'x' in globals(),以适合您期望的位置。


您可以检查x是否在globals()locals()中。


1
2
3
4
5
6
try:
  variable
except NameError:
  print"It doesn't Exist!"
else:
  print"It exists!"

在Python中,您真的不应该使用尚未设置的变量。如果需要,可以将avatarlink设置为none。