[英]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.