Я создаю лямбды в al oop. Я хочу, чтобы лямбда игнорировала свой аргумент и возвращала одну из переменных l oop. Это отличается от других подобных вопросов.
Проблема в том, что все лямбда-выражения, созданные здесь, возвращают одно и то же значение, поскольку они ссылаются на переменную l oop. Я пробовал различные формы copy()
и deepcopy()
, et c., И я прочитал эту ссылку (https://docs.python.org/3/faq/programming.html#why -do-lambdas-defined-in-al oop -with -different-values-all-return-the-same-result ), но решения пока нет.
Как мне создать лямбду, которая игнорирует свой аргумент и действительно фиксирует значение переменной?
# Go through defaults and fill in default fn if none exists for a given key
for k,v in defaults.items():
if not convfns.get(k):
convfns[k] = lambda _: v
Изменить: чтобы уточнить, все предыдущие ответы, которые я видел, либо включают дополнительную лямбду, либо не принимают аргумент и просто захватывают переменную l oop со значением по умолчанию. Мне нужно было взять аргумент, проигнорировать его и вернуть захваченную переменную l oop.