本文对 Python 中的函数式编程技术进行了简单的入门介绍。
头等函数
在 Python 中,函数是「头等公民」(first-class)。也就是说,函数与其他数据类型(如 int)处于平等地位。
因而,我们可以将函数赋值给变量,也可以将其作为参数传入其他函数,将它们存储在其他数据结构(如 dicts)中,并将它们作为其他函数的返回值。
把函数作为对象
由于其他数据类型(如 string、list 和 int)都是对象,那么函数也是 Python 中的对象。我们来看示例函数 foo,它将自己的名称打印出来:
def foo():
print("foo")
由于函数是对象,因此我们可以将函数 foo 赋值给任意变量,然后调用该变量。例如,我们可以将函数赋值给变量 bar:
bar = foo
bar()
#will print "foo" to the console
语句 bar = foo 将函数 foo 引用的对象赋值给变量 bar。
把对象作为函数
当对象可调用时(callable),它们与函数一样,如 object()。这是通过 __call__ 方法实现的。
示例如下:
class Greeter:
def __init__(self, greeting):
self.greeting = greeting
def __call__(self, name):
return self.greeting + " " + name
每一次配置 Greeter 类的对象时,我们都会创建一个新的对象,即打招呼时可以喊的新名字。如下所示:
morning = Greeter(