Pythonic способ получить проверку подсказок типа для динамически импортируемых методовPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Pythonic способ получить проверку подсказок типа для динамически импортируемых методов

Сообщение Anonymous »

Новичок в Python, который изо всех сил пытается избавиться от своих привычек статически типизированного OOD.
У меня есть интерфейс командной строки, который поддерживает возможность передачи данных по конвейеру методам преобразования вывода. Итак, я могу запустить что-то вроде этого:

Код: Выделить всё

my_command | filter name=bob | sort last_name | to_json
Для этого я хочу, чтобы в моем модуле преобразований было определено несколько методов, которые все принимают объект результатов и аргументы и возвращают объект результатов после преобразования. Затем я читаю следующий аргумент после канала и пытаюсь найти метод с таким именем в моем модуле преобразований и передать все этому методу, если он обнаружен.
Теперь я могу сделать именно это. , но таким образом я не получаю никакой проверки типов или безопасности, в отличие от использования подсказок типов для проверки работоспособности всего остального, что мы делаем. Мне интересно, каким наиболее питоническим способом было бы попытаться сохранить какую-то проверку типов для любого преобразования, которое я обнаруживаю в модуле?
Я мог бы создать абстрактный класс с одним методом , но требовать, чтобы каждое преобразование было отдельным классом только для реализации этого одного метода с типобезопасностью, кажется чрезмерным. Я на мгновение подумал, может быть, декораторы, но мой быстрый взгляд на них говорит о том, что декораторы не поддерживают подсказку типа до версии 3.10, а я ограничен Python 3.9.
Есть ли чистый питонический способ попробовать чтобы получить здесь проверку типов? или мне следует просто использовать любой метод, который я найду, и верить, что он сработает правильно?

Подробнее здесь: https://stackoverflow.com/questions/775 ... ed-methods
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

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

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