python - 如何在另一个 lambda 中绑定一个 lambda?
问题描述
我想根据某些参数构建过滤器,通过将 python lambda 链接在一起,如下所示:
filter_even = True
my_filter = lambda x: x # Base filter
if filter_even:
my_filter = lambda x: my_filter(x) and x % 2 == 0
list(filter(my_filter, [1,2,3,4]))
但是my_filter
没有绑定在 lambda 中,而是对新 lambda 的引用,所以我得到了
RecursionError: maximum recursion depth exceeded
将旧 lambda 绑定到新 lambda 中的最佳方法是什么?我认为 lambda 的行为类似于变量,但在这种情况下,它似乎通过名称而不是变量的内容来引用旧的 lambda(之后被新的 lambda 替换)
解决方案
推荐阅读
- php - Laravel “[Vue warn]: Error compile template” 使用 Dump 时
- performance - 在 Protobuf 中将 Go 结构编码为映射键的最有效方法
- javascript - 如何更新对象中的属性?
- swift - CAShapeLayer 和 UIBezierPath 逆时针绘制圆的问题
- jquery - 如何使用 jQuery 将对象中的第一个字符包裹起来
- c# - C#:如何打开一个进程,等到进程中的程序加载完毕,再使用新进程执行命令?
- python - Python curve_fit:未找到最佳参数
- azure - 从 Azure Cache for Redis 获取数据库信息
- python - Python:使错误列表索引超出范围
- python - Python内存中ZipFile未打开