如何在 Python 中建立高階函式?


在 Python 中,如果一個函式以另一個函式作為引數或返回一個函式作為輸出,則稱為高階函式。讓我們看看它的特性:

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

  • 函式可以作為引數傳遞給另一個函式。

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

  • 函式可以從函式中返回。

讓我們看一些例子:

函式作為物件

示例

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

# Creating a function def demo(mystr): return mystr.swapcase() # swapping the case print(demo('Thisisit!')) sample = demo print(sample('Hello'))

輸出

tHISISIT!
hELLO

將函式作為引數傳遞

示例

在這個例子中,函式被作為引數傳遞。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 中的裝飾器

示例

在裝飾器中,函式被作為引數傳入另一個函式,然後在包裝器函式內部呼叫。讓我們看一個簡單的例子:

@mydecorator def hello_decorator(): print("This is sample text.")

以上也可以寫成:

def demo_decorator(): print("This is sample text.") hello_decorator = mydecorator (demo_decorator)

裝飾器示例

示例

在這個例子中,我們將圍繞裝飾器作為高階函式進行操作:

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

示例

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

應用語法裝飾器

示例

上面的例子可以使用帶有 @ 符號的裝飾器進行簡化。這可以透過在我們要裝飾的函式之前放置 @ 符號來簡化應用裝飾器:

# 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

更新於: 2022-09-16

2K+ 瀏覽量

啟動你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.