Передача типа исключения в качестве аргумента, как ввести подсказку?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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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