如何在Python中创建高阶函数?
在Python中,将另一个函数作为参数或将函数作为输出返回的函数被称为高阶函数。让我们来看看其特性 -
该函数可以存储在变量中。
该函数可以作为参数传递给另一个函数。
高阶函数可以以列表、哈希表等形式存储
立即学习“Python免费学习笔记(深入)”;
函数可以从函数中返回。
让我们来看一些例子 −
函数作为对象
Example
的中文翻译为:示例
在这个例子中,这些函数被视为对象。在这里,函数demo()被赋值给一个变量 -
# Creating a functiondef demo(mystr): return mystr.swapcase() # swapping the caseprint(demo('Thisisit!'))sample = demoprint(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)# Callingdemo3(demo)demo3(demo2)
输出
tHIS IS IT!This is it!
现在,让我们讨论装饰器。我们可以使用装饰器作为高阶函数。
Python中的装饰器
Example
的中文翻译为:示例
在装饰器中,函数被作为参数传递给另一个函数,然后在包装函数中被调用。让我们看一个快速的例子 −
@mydecoratordef 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 functiondef outerFunc(sample): def innerFunc(x,y): # inner function return sample(x,y) return innerFunc# callingdemoFunc2 = outerFunc(demoFunc)demoFunc2(10, 20)
输出
Sum = 30
Example
的中文翻译为:示例
def demoFunc(x,y): print("Sum = ",x+y)# outer functiondef outerFunc(sample): def innerFunc(x,y): # inner function return sample(x,y) return innerFunc# callingdemoFunc2 = outerFunc(demoFunc)demoFunc2(10, 20)
输出
Sum = 30
应用语法装饰器
Example
的中文翻译为:示例
可以使用带有 @symbol 的装饰器来简化上面的示例。通过在我们想要装饰的函数之前放置 @ 符号,可以简化装饰器的应用 -
# outer functiondef outerFunc(sample): def innerFunc(x,y): # inner function return sample(x,y) return innerFunc@outerFuncdef demoFunc(x,y): print("Sum = ",x+y)demoFunc(10,20)
输出
Sum = 30