This is actually not only for lambda; any function using default parameters will use the same syntax. for instance
def my_range(start, end, increment=1):
ans = []
while start < end:
ans.append(start)
start += increment
return ans
( , , , ). my_range(5,10), [5,6,7,8,9]. my_range(5,10,increment=2), [5, 7, 9].
. , , , . - , . , :
def create_multipliers():
return [lambda x : i * x for i in range(5)]
for multiplier in create_multipliers():
print multiplier(2)
multiplier(2), ? , 2 i * 2. i? , i , . i - , , - 4. , 8.
, , i . i? , , , . , i !
, , -. ,
def create_multipliers():
return [(lambda x, y=i: y*x) for i in range(5)]