Python 如何创建高阶函数

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

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程