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)]