在Python中无法计算UnboundLocalError

2024-04-16 11:38:23 发布

您现在位置:Python中文网/ 问答频道 /正文

嵌入函数中的代码块:

try:
    os.makedirs(os.path.dirname(log))
except OSError:
    pass

错误:

^{pr2}$

这可能是什么症状?在


Tags: path函数代码log症状os错误pass
2条回答

Python2异常捕捉语法中有一个令人遗憾的混淆源。在函数的某个地方,您执行了如下操作:

except SomeError, OSError:

看起来它捕获了两个异常类型,但实际上不是。OSError实际上被解释为要保存正在捕获的SomeError实例的变量的名称。这意味着当您试图捕获OSError

^{pr2}$

OSError是指您没有意识到自己创建的局部变量。在

要捕获多个异常类型,需要在要捕获的类型列表中加括号:

except (SomeError, OSError):

代码在函数中的某个地方赋值给OSError,这意味着编译器已将其标记为局部变量。验证该名称出现的每一位代码,以验证您没有错误地使用它。在

相关问题 更多 >