def compose(f,g):
return lambda f: f + 1
return lambda g: g
如何指定return语句的顺序
这些是测试用例;
add1 = lambda a: a+1
this = lambda a: a
test.expect( compose(add1,this)(0) == 1 )
答案 0 :(得分:2)
def compose(f1, g1):
# do something
return lambda f:f+1, lambda g:g
将返回两个函数的元组。
您可以获得以下各项功能:
func1, func2 = compose(a,b)
答案 1 :(得分:1)
函数中不能有两个return语句。一旦第一个被调用,将无法到达第二个,因为该函数已经返回。但是,您可以使用tuple来组织输出,如下所示。
def compose(f,g):
return (lambda f: f + 1, lambda g: g)
但要小心,因为这将返回实际的lambdas,如下例所示:
In [7]: def func(f, g):
...: return (lambda f: f + 1, lambda g: g)
...:
In [8]: func(0, 0)
Out[8]: (<function __main__.<lambda>>, <function __main__.<lambda>>)
注意类型按行显示[8]。这意味着函数返回的变量将是实际函数,而不是数字。要返回一个数字,不要使用lambdas,只需正常计算数字。
值得注意的是,参数对此功能没有影响。
答案 2 :(得分:0)
def compose(f,g):
return lambda f: f + 1,lambda g: g
print compose(f,g)[0]
print compose(f,g)[1]