如何在Python中創建高階函數?

PHPz
發布: 2023-09-05 19:29:05
轉載
1282 人瀏覽過

如何在Python中創建高階函數?

在Python中,將另一個函數作為參數或將函數作為輸出傳回的函數稱為高階函數。讓我們來看看其特性 -

  • 該函數可以儲存在變數中。

  • 此函數可以當作參數傳遞給另一個函數。

  • 高階函數可以以列表、雜湊表等形式儲存

  • #函數可以從函數中傳回。

讓我們來看一些例子 −

函數作為物件

Example

的中文翻譯為:

範例

在這個例子中,這些函數被視為物件。在這裡,函數demo()被賦值給一個變數 -

# Creating a function
def demo(mystr):
   return mystr.swapcase() # swapping the case

print(demo('Thisisit!'))
sample = demo
print(sample('Hello'))
登入後複製

輸出

tHISISIT!
hELLO
登入後複製

將函數傳遞為參數

Example

的中文翻譯為:

範例

在此函數作為參數傳遞。 demo3() 函數呼叫 demo()demo2() 函數作為參數。

def demo(text):
   return text.swapcase()

def demo2(text):
   return text.capitalize()

def demo3(func):
   res = func("This is it!") # Function passed as an argument
   print (res)

# Calling
demo3(demo)
demo3(demo2)
登入後複製

輸出

tHIS IS IT!
This is it!
登入後複製

現在,讓我們討論裝飾器。我們可以使用裝飾器作為高階函數。

Python中的裝飾器

Example

的中文翻譯為:

範例

在裝飾器中,函數被當作參數傳遞給另一個函數,然後在包裝函數中被呼叫。讓我們來看一個快速的例子 −

@mydecorator
def hello_decorator():
   print("This is sample text.")
登入後複製

上面也可以寫成 -

def demo_decorator():
   print("This is sample text.")
hello_decorator = mydecorator (demo_decorator)
登入後複製

裝飾器範例

Example

的中文翻譯為:

範例

在這個例子中,我們將把裝飾器當作高階函數來運作 -

def demoFunc(x,y):
   print("Sum = ",x+y)

# outer function
def outerFunc(sample):
   def innerFunc(x,y): # inner function
      return sample(x,y)
   return innerFunc

# calling
demoFunc2 = outerFunc(demoFunc)
demoFunc2(10, 20)
登入後複製
登入後複製

輸出

Sum = 30
登入後複製
登入後複製
登入後複製

Example

的中文翻譯為:

範例

def demoFunc(x,y):
   print("Sum = ",x+y)

# outer function
def outerFunc(sample):
   def innerFunc(x,y): # inner function
      return sample(x,y)
   return innerFunc

# calling
demoFunc2 = outerFunc(demoFunc)
demoFunc2(10, 20)
登入後複製
登入後複製

輸出

Sum = 30
登入後複製
登入後複製
登入後複製

應用語法裝飾器

Example

的中文翻譯為:

範例

可以使用帶有 @symbol 的裝飾器來簡化上面的範例。透過在我們想要裝飾的函數之前放置 @ 符號,可以簡化裝飾器的應用 -

# outer function
def outerFunc(sample):
   def innerFunc(x,y): # inner function
      return sample(x,y)
   return innerFunc

@outerFunc
def demoFunc(x,y):
   print("Sum = ",x+y)

demoFunc(10,20)
登入後複製

輸出

Sum = 30
登入後複製
登入後複製
登入後複製

以上是如何在Python中創建高階函數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:tutorialspoint.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板