Передача типа исключения в качестве аргумента, как ввести подсказку?Python

Программы на Python
Anonymous
Передача типа исключения в качестве аргумента, как ввести подсказку?

Сообщение Anonymous »

У меня есть функция, которая принимает класс исключения в качестве аргумента, это упрощенная версия
def catch_exception(exception):
try:
1/0
except exception:
print("lol")

>>> catch_exception(exception=ZeroDivisionError)
lol

Введите подсказку, что это должно быть легко:
def catch_exception(exception: Exception):
...

но когда я затем использую эту функцию, у меня возникает проблема со стороны IDE (PyCharm)
catch_exception(exception=ZeroDivisionError)
# Expected type 'Exception', got 'Type[Exception]' instead

Я понимаю проблему: я передаю КЛАСС исключения, а не ЭКСПЛУАТАЦИЮ исключения.
В то же время я не уверен, как ввести подсказку формально правильным способом. и это имеет ценность документации для пользователя.
Следующее, кажется, работает, но должен быть лучший способ:
def catch_exception(exception: Type[Exception]):
...


Подробнее здесь: https://stackoverflow.com/questions/774 ... -type-hint

Вернуться в «Python»