У меня есть два файла. Одним из них является program_utils.py
с содержимым:Класс исключений не удалось импортировать
class SomeException(Exception):
def __init__(self, *args, **kwargs):
Exception.__init__(self, *args, **kwargs)
другой, скажем, program.py
с
import program_utils
def SomeFunction(arg):
if arg in set([ok_val1, ok_val2]):
# do something
else:
raise SomeException('reason')
Когда я бегу program.py
жалуется: NameError: name 'MyException' is not defined
. Когда я вставляю содержимое program_utils.py
прямо в program.py
, он отлично работает. Зачем?
'import program_utils' не означает« выгрузить содержимое 'program_utils' в мое пространство имен». Вам все еще нужно обращаться к вещам как 'program_utils.whatever'. – user2357112
Вы не импортировали имя в свое пространство имен, поэтому вам нужно его охватить ... 'program_utils.SomeException' или импортировать в ваше пространство имен -' from program_utils import SomeException' – AChampion
Это должно было быть очевидным. Спасибо за ваше терпение всем. – Jason