Поведение при распаковке map() в List

Коллеги, подскажите пожалуйста, я что-то не понимаю, или так и должно быть?

Изначальная задача была следующая, я написал кастомный парсер аргументов для flast_restx, для возможности в args передавать аргумент типа ?...&postpress=1,2 :

get_calc_parser.add_argument('postpress', required=False, default=None, location='args', type=lambda x: map(int, x.split(',')))

Вот так выглядит обработчик на эндпоинте:

    def get(self):
    args = get_calc_parser.parse_args()
    if calculation:
        return {
            'test': list(args.postpress)
        }

в ответе JSON приходит пустой список:

{    
"test": []
}

В режиме дебаггера все проверил, код корректно отрабатывается, то есть аргументы типа int фактически внутри списка. Но итоговое отображение не верное. Решил проверить это в Python Console и еще больше удивился:

проверка в консоли

Появилось теперь два вопроса:

  1. Как же все таки распаковать функцию генератор в рамках flask_restx , чтобы не получить пустой список?

  2. Почему list(w) на скриншоте - одноразовая функция. То есть один раз она отрабатывает, а после чего начинает так же возвращать пустой массив?


Ответы (0 шт):