简短且易读的类型化lambdas
项目描述
在需要的地方编写简短且完全类型化的lambda
。
特性
- 允许将
lambda
编写为_
- 完全类型化,带有注解并通过
mypy
检查,PEP561兼容 - 包含许多辅助函数以实现更好的组合
- 易于开始:具有大量的文档、测试和教程
安装
pip install lambdas
您还需要正确配置mypy
并安装我们的插件
# In setup.cfg or mypy.ini:
[mypy]
plugins =
lambdas.contrib.mypy.lambdas_plugin
我们推荐使用我们使用的相同的mypy
设置 我们使用。
示例
想象一下,您需要按如下方式对字典数组进行排序
>>> scores = [
... {'name': 'Nikita', 'score': 2},
... {'name': 'Oleg', 'score': 1},
... {'name': 'Pavel', 'score': 4},
... ]
>>> print(sorted(scores, key=lambda item: item['score']))
[{'name': 'Oleg', 'score': 1}, {'name': 'Nikita', 'score': 2}, {'name': 'Pavel', 'score': 4}]
它工作得很好。除了,您必须为此简单的操作进行大量的类型化。
这就是 lambda
辅助函数介入的地方
>>> from lambdas import _
>>> scores = [
... {'name': 'Nikita', 'score': 2},
... {'name': 'Oleg', 'score': 1},
... {'name': 'Pavel', 'score': 4},
... ]
>>> print(sorted(scores, key=_['score']))
[{'name': 'Oleg', 'score': 1}, {'name': 'Nikita', 'score': 2}, {'name': 'Pavel', 'score': 4}]
当您使用很多 lambda
函数时,这可能会真正为您节省很多精力。例如,当使用 returns
库时。
我们可以轻松创建数学表达式
>>> from lambdas import _
>>> math_expression = _ * 2 + 1
>>> print(math_expression(10))
21
>>> complex_math_expression = 50 / (_ ** 2) * 2
>>> print(complex_math_expression(5))
100.0
工作进行中
- 由于相同的原因,目前不支持
_.method()
TypedDict
未与__getitem__
进行测试__getitem__
无法与列表和元组(集合)一起使用,只与字典(映射)一起使用
目前您将不得不在这些情况下使用常规的 lambda
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。
源代码分发
lambdas-0.2.0.tar.gz (5.7 kB 查看散列)
构建分发
lambdas-0.2.0-py3-none-any.whl (6.6 kB 查看散列)