У меня есть функция, которая принимает класс исключения в качестве аргумента, это упрощенная версия
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