Во-первых, общее определение:
Когда программа или функциональный оператор выполняются, текущие значения формальных параметров сохраняются (на стеке) и в рамках оператора, они связываются со значениями действительных аргументов, приведенных в вызове. Когда из оператора выходят, исходные значения тех формальных аргументов восстанавливаются. Этот протокол является полностью рекурсивным. Если в теле оператора, что-то будет сделано, который заставляет формальные параметры быть связанными снова к новым значениям, связывающая лямбду схема гарантирует, что это все произойдет организованным способом.
Теперь, существует превосходный пример Python в обсуждении здесь:
"... существует только одна привязка для x
: выполнение x = 7
просто изменяет значение в предсуществовавшей привязке. Вот почему
def foo(x):
a = lambda: x
x = 7
b = lambda: x
return a,b
возвраты две функции это оба возврата 7; если была новая привязка после x = 7
, функции возвратили бы различные значения [предполагающий, что Вы не называете нечто (7), конечно. Также принимая nested_scopes]...."
Я никогда не слышал, что термин, но одно объяснение мог быть "параметром по умолчанию" взлом, используемый для присвоения значения непосредственно параметру лямбды. Используя пример Swati:
def foo(x):
a = lambda x=x: x
x = 7
b = lambda: x
return a,b
aa, bb = foo(4)
aa() # Prints 4
bb() # Prints 7
Где Вы видели используемую фразу?
"Привязка" в Python обычно относится к процессу, которым имя переменной заканчивает тем, что указало на конкретный объект, ли присвоением или передачей параметров или некоторыми другими средствами, например:
a = dict(foo="bar", zip="zap", zig="zag") # binds a to a newly-created dict object
b = a # binds b to that same dictionary
def crunch(param):
print param
crunch(a) # binds the parameter "param" in the function crunch to that same dict again
Таким образом, я предположил бы, что "привязка лямбды" относится к процессу привязки функции лямбды к имени переменной или возможно привязки его именованных параметров к конкретным объектам? Существует довольно хорошее объяснение привязки в Ссылке Языка по http://docs.python.org/ref/naming.html