簡體   English   中英

Python lambda 返回值

[英]Python lambda return value

我正在學習 lambda 選項以在 python 中返回,我有一個問題:

我需要在這個 function 中填寫退貨單:

def func(n):
   if n==0:
      print("finished")
   else:
      return ___
func(5)()()()()()
func(3)()()()
func(8)()()()()()()()()

output:

finished
finished
finished

我認為這是一個像 return func(n-1) 這樣的遞歸調用,但它不起作用,並拋出錯誤。 有沒有辦法克服額外的空括號? 數他們? 做某事,因為它應該是可運行的。

謝謝

關於需要使用 lambdas 和 func n-1,你是對的,特別是

return lambda: func(n-1)

這將返回一個 lambda,它不需要傳入任何參數來處理括號,並且返回的是 function 被 n-1 調用,在您進行的大多數調用中,它返回下一個 lambda function 調用

operator()是function的調用。 例如:

def foo():
   print('Foo executed')

def bar():
   # We return the foo FUNCTION itself, without calling it.
   return foo

在上面的代碼中,如果你執行foo() ,它會打印“Foo executed”。 但是如果你執行bar() ,它會返回foo ,也就是 function。所以你可以執行bar()() ,其中第一個 () 執行 function bar,返回 foo,然后與第二個 (),你調用返回的 foo function。

編輯:當我輸入它時,你刪除了那些 () 是什么,因為它們對你來說是新的......但我只是把它留在那里也許它會有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM