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

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