如何在Python中使用Lambda函数生成操作生成器
mul接受两个变量x,y并返回x*y。pow接受两个变量x,y并返回x^y。请注意,这两个函数非常相似。我们可以将通用性抽象为更通用的函数make_生成器,这样我们就可以编写:如何在Python中使用Lambda函数生成操作生成器,python,Python,mul接受两个变量x,y并返回x*y。pow接受两个变量x,y并返回x^y。请注意,这两个函数非常相似。我们可以将通用性抽象为更通用的函数make_生成器,这样我们就可以编写: def make_multiplier(scaling_factor): return lambda x: mul(x, scaling_factor) def make_exponentiator(exponent): return lambda x: pow(x, exponent) 编写函数ma
def make_multiplier(scaling_factor):
return lambda x: mul(x, scaling_factor)
def make_exponentiator(exponent):
return lambda x: pow(x, exponent)
编写函数make_生成器
测试用例:
make_乘数(3)(2)=6
make_指数(3)(2)=8
make_multiplier = make_generator(mul)
make_exponentiater = make_generator(pow)
我得到了输出,但没有通过给定的测试用例。任何帮助都将不胜感激。您的函数应该接受一个操作并返回一个函数,该函数使函数以固定值使用该操作(我知道这有点难以理解)。而您当前的实现只返回一个函数,该函数接受两个值并返回结果。更改您的实现,如下所示:
def make_generator(op):
return lambda x, y: op(x, y)
#################
# DO NOT REMOVE #
#################
def mul(x,y):
return x*y
def pow(x,y):
return x**y
make_multiplier = make_generator(mul)
make_exponentiator = make_generator(pow)
如果您有一个类似于
f(x,y)
的函数,并且您希望能够像g(x)(y)
那样调用它,则称为。您可以像这样变换lambda:
#旧版本
返回λx,y:op(x,y)
#咖喱版
返回λx:λy:op(x,y)
程序没有通过的测试用例是什么?测试用例:make_乘数(3)(2)=6 make_指数(3)(2)=8非常感谢。Lambda函数非常有趣,这个问题让我有些紧张。
def make_generator(op):
def make_operation(fixed_value):
return lambda x: op(x, fixed_value)
return make_operation