Python:第一类函数

第一类函数是被语言视为对象或变量的函数。我们可以将它们赋值给一个变量,或者将它们作为一个对象传递给其他函数。

Python 支持第一类函数。

第一类函数的属性

  • 它是一个对象类型的实例。
  • 我们可以把它赋值给一个变量。
  • 我们可以把它作为一个参数传递给另一个函数。
  • 它可以返回一个函数。
  • 我们可以把它存储在哈希表、列表和其它数据结构中。

第一类函数的例子

作为对象的函数

在下面的代码中,我们把函数square() 赋给了一个变量my_sq 。现在,my_sq 和square() 是一样的。

当我们在把函数赋值给变量时写下它的名字,我们并没有调用这个函数。我们调用的是函数my_sq() ,它指的是实际的函数。

作为输出,我们得到所传数字的平方。

示例代码:

def square(x):
    return x*x
my_sq = square
result = my_sq(2)
print(result)

输出:

4

将一个函数作为参数传递给另一个函数

在下面的代码中,我们将函数square() 作为参数传递给函数operation() ,就像我们将对象作为参数传递一样。

在该方法中,我们将传递的函数分配给对象func ,我们通过调用func() 来调用函数square() ,因为func() 在后端引用了square() 。

接受一个函数作为参数的函数被称为高阶函数。这里,operation() 是一个高阶函数。

示例代码:

def square(x):
    return x*x
def operation(func):
    result = func(2)
    print(result)
operation(square)

输出:

4

从一个函数中返回一个函数

我们可以从另一个函数中返回一个函数,因为函数是对象。在下面的代码中,我们创建了一个函数operation() ,返回一个函数square() 。

我们将返回的函数保存在一个对象sq 。现在,sq 指向方法square() 。

最后,我们通过sq ,调用了方法square() 。

示例代码:

def operation():
    def square(x):
        return x*x
    return square
#Python小白学习交流群:153708845    
sq = operation()
result=sq(2)
print(result)

输出:

4

你可能感兴趣的:(python,开发语言)