如何在 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
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP