我最近开始学习Python 3.5.1,目前正在试验lambda
表达式。我尝试设置下面的简单方法。为什么将这个lambda表达式结果返回一个字符串?
def sum_double(a, b):
return lambda a, b: a+b if a != b else (a+b)*2, a, b
所有它应该做的是返回a
和b
总和,两次,如果a
他们的总和等于b
,而是我得到一个输出看起来像这样。
代码:
print(sum_double(1, 2))
print(sum_double(2, 3))
print(sum_double(2, 2))
输出:
(<function sum_double.<locals>.<lambda> at 0x000001532DC0FA60>, 1, 2)
(<function sum_double.<locals>.<lambda> at 0x000001532DC0FA60>, 2, 3)
(<function sum_double.<locals>.<lambda> at 0x000001532DC0FA60>, 2, 2)
我这样做不对吗?为什么会发生这种情况,如果甚至有可能,我将如何使用lambda表达式来实现所需的功能?
你为什么要使用Lambda在这里? lambda是一个函数,所以你从函数返回一个函数。 –
@MorganThrapp它[功能一路下降](https://en.wikipedia.org/wiki/Turtles_all_the_way_down)! –
@MorganThrapp看看我能做什么,不能做什么,以便完全理解他们和他们的行为。 – pianoisland