我知道许多问题都存在,但是我似乎找不到适合我所遇到问题的问题。

我有以下内容:

def function():
  try:
    # function to create a table on hbase
  except AlreadyExists, ae:
    print "WARN: " + ae.message


当我从另一个python脚本调用它时,它给了我

NameError: global name 'AlreadyExists' is not defined


...但是如果我删除def function()并单独运行它,它将起作用并且不会抱怨全局名称。

我试着放global AlreadyExists,那没有用。我也查看了这个similar problem,但是我不确定如何应用它,因为它可以独立工作(无需导入任何特定的东西,但是一旦将其包装到函数中,它就会失败)。

有什么建议么?

最佳答案

Python仅在引发异常时尝试访问该名称。当您在函数外运行代码时,它可能没有引发异常,这就是为什么您认为它起作用。

您需要从任何位置导入AlreadyExists异常。

关于python - NameError:在函数中使用try/except时,未定义全局名称“AlreadyExists”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7720291/

10-11 13:04