createmultiplier(10)
创建一个将其参数乘以10的函数。就是这样
multiply
分配给…因此
multiply(15)
返回
150
.
换句话说:
multiply = createmultiplier(10)
具有与执行以下操作相同的效果:
def multiply(y)
return 10 * y
函数的点,如
createmultiplier
就是让你在没有
def
陈述
和
无需硬编码实现细节,如常量
10
.例如,如果你想让所有数字的倍数从1到4,你可以:
def times_1(y):
return 1 * y
def times_2(y):
return 2 * y
def times_3(y):
return 3 * y
def times_4(y):
return 4 * y
multipliers = [times_1, times_2, times_3, times_4]
print([m(10) for m in multipliers]) # [10, 20, 30, 40]
但这要容易得多:
def create_multiplier(x):
return lambda y: y*x
multipliers = [create_multiplier(x) for x in range(1, 5)]
print([m(10) for m in multipliers]) # [10, 20, 30, 40]