& # 39; & # MakeCert 39; не распознается как внутренняя или внешняя команда в командной строке

Закрытие лямбды содержит ссылку на используемую переменную, а не ее значение, поэтому, если значение переменной позже изменяется, значение в закрытии также изменяется. То есть значение переменной замыкания разрешается при вызове функции, а не при ее создании. (Поведение Python здесь не является чем-то необычным в мире функционального программирования, для чего оно стоит.)

Существует два решения:

  1. Используйте аргумент по умолчанию, привязывая текущее значение от переменной до локального имени во время определения. lambda v=v: pv(v)
  2. Используйте двойную лямбда и немедленно вызывайте первый. (lambda v: lambda: pv(v))(v)
13
задан 5377037 28 June 2018 в 12:11
поделиться