小规模组合与事件驱动架构
1. 小规模组合编程
1.1 函数组合
在编程中,除了面向对象编程(OOP)原则,函数式编程(FP)也越来越受欢迎。FP 聚焦于纯函数,纯函数的输出仅由输入决定,给定相同的输入,无论全局状态或环境如何变化,它总是返回相同的输出。
与带有副作用的函数相比,纯函数更易于组合。副作用是指函数在返回值之外所做的任何事情,如记录消息、进行网络调用或修改变量。移除函数的副作用可以使其更易于复用,因为函数仅依赖于输入数据,唯一可观察到的效果就是返回的数据。
以下是一个简单的高阶函数示例,它接受一个函数并调用两次:
from typing import Callable
def do_twice(func: Callable, *args, **kwargs):
func(*args, **kwargs)
func(*args, **kwargs)
Python 的 functools 模块专门用于高阶函数,大多数 functools 函数以及自定义的函数组合通常以装饰器的形式实现。
1.2 装饰器
装饰器是一种函数,它接受另一个函数并对其进行包装,或者指定在函数执行前必须执行的行为。装饰器提供了一种组合函数的方式,而无需函数体相互了解。
以下是将 do_twice 函数重写为更通用的 repeat 函数的示例:
超级会员免费看
订阅专栏 解锁全文
10万+

被折叠的 条评论
为什么被折叠?



