Учитывая следующий код в foo.py:Импортирующие Исключения Python
class Error(Exception):
pass
class UnexpectedParameterType(Error):
pass
class Human(models.Manager):
def create_human(self, name):
if not isinstance(name, str):
raise UnexpectedParameterType
human = Human(name = name)
return human
ли я абсолютно необходимо явно импортировать свой класс исключений в bar.py, так что я могу поймать исключение броска? Как это:
from foo import UnexpectedParameterType, Human
human = Human()
try:
human.create_human(123)
except UnexpectedParameterType:
return "Cannot create human."
Что я намекаю на здесь быть в состоянии сделать что-то вроде этого:
from foo import Human
[...]
except Human.UnexpectedParameterType:
return "Cannot create human."
Все ответы очень высокую оценку, спасибо! Не стесняйтесь делиться своими личными рекомендациями по устранению исключений в Python.
Вот что я подумал, но если вы вспомните в Django, вы можете сделать что-то вроде MyModel.DoesNotExist, где MyModel - это класс, а не файл. Это в основном то, что я пытаюсь сделать и в моем коде. – heapoverflow
@heapoverflow вы не можете помещать блоки текста в комментарии. [gisthub] (https://gist.github.com/) подходит для этого –
Кроме того, я вижу, что вы кладете класс внутри другого класса. Является ли это законным в Python? – heapoverflow