25、小规模组合与事件驱动架构

小规模组合与事件驱动架构

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 函数的示例:

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值