因此,我有一个Python项目,它被拆分到多个文件中(以保持我的理智(,我正试图在另一个文件中使用一个文件定义的自定义异常。基本上,我有a.py
和b.py
。a.py
包含由a.py
中的函数引发的自定义异常(customException
(。
a.py
:
class customException(Exception):
[irrelevant error handling]
def aFunction():
if [something]:
raise customException
return [stuff]
周围的代码是无关的(我希望,否则我会有一个更奇怪的问题(,所以我没有包含它。然后我将a.py
导入b.py
(它们在同一目录中(以使用aFunction:
b.py
:
import a.py
try:
var = a.aFunction()
except customException:
var = [something else]
当我在a.py
将引发customException的情况下运行b.py
时,我得到了预期的a.customException
错误,但也得到了NameError: name 'customException' is not defined
错误。
如何在b.py
中定义customException
?
编辑:Paul M.的解决方案对我很有效,以防其他人在寻找解决方案时发现。再次感谢保罗和所有回答的人!
您只需要通过从导入a
的模块中调用a.customException
来限定customException
,如下所示:
a.py
:
class customException(Exception):
[irrelevant error handling]
def aFunction():
if [something]:
raise customException
return [stuff]
b.py
:
import a
try:
var = a.aFunction()
except a.customException:
var = [something else]