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