markinaras, Всегда нужно писать так, объясняется следующим образом: Чтобы новый интерпретатор Python при создании процесса мог безопасно импортировать модуль. Представьте ситуацию, когда у нас создаётся новый процесс, который копирует код вашего модуля, а в этом коде запускается процесс тогда возникает рекурсия. Решением этой ситуации является такое логическое условие.
Больно видеть такой код, не думали сначала выучить основы программирования ? Порешать задачки, пописать циклы и функции, а то и дальше продолжите тратить своё время на поиск примитивных ошибок.
Ты столкнулся с задачей, а не проблемой. Приведи свои мысли или попытки решения задачи, а если хочешь, чтобы за тебя написали код, то можешь на фриланс.
Vindicar, Возможные входные параметры задаются аннотацией, могут быть разными, даже классами. В ParamField можно передать default -- дефолтное значение для параметра, а также encoder -- класс с методом encode, который умеет преобразовывать типы данные, указанные при аннотации. Если encoder не указан, то срабатывает DefaultEncoder, просто пропускает через метод encode, ничего не делая с данными. Подконтрольна абсолютно любая часть кода, однако хочу написать решение, при котором я смогу декларативно внутри параметров функции описать необходимое мне поведение(преобразование аргументов, грубо говоря).
Да, действительно, хочу странного, но всё же. Был маппер, который перегонял аргументы, но он был огромным и с большим количеством условий, поэтому нужно от него отказаться, для этого создал класс ParamField, который должен хранить значение параметра и уметь сериализовать.