我最近開始學習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