У меня есть интерфейс командной строки, который поддерживает возможность передачи данных по конвейеру методам преобразования вывода. Итак, я могу запустить что-то вроде этого:
Код: Выделить всё
my_command | filter name=bob | sort last_name | to_json
Теперь я могу сделать именно это. , но таким образом я не получаю никакой проверки типов или безопасности, в отличие от использования подсказок типов для проверки работоспособности всего остального, что мы делаем. Мне интересно, каким наиболее питоническим способом было бы попытаться сохранить какую-то проверку типов для любого преобразования, которое я обнаруживаю в модуле?
Я мог бы создать абстрактный класс с одним методом , но требовать, чтобы каждое преобразование было отдельным классом только для реализации этого одного метода с типобезопасностью, кажется чрезмерным. Я на мгновение подумал, может быть, декораторы, но мой быстрый взгляд на них говорит о том, что декораторы не поддерживают подсказку типа до версии 3.10, а я ограничен Python 3.9.
Есть ли чистый питонический способ попробовать чтобы получить здесь проверку типов? или мне следует просто использовать любой метод, который я найду, и верить, что он сработает правильно?
Подробнее здесь: https://stackoverflow.com/questions/775 ... ed-methods