如何解决我可以使用python创建从左到右的功能管道DSL吗?
https://dev.to/xtofl/comment/14ihn
在倡导无点组合函数的同时,我建立了一个Pipeline
类;但是我注意到我无法完全直观地做到这一点。
double = lambda x: x*2
inc = lambda x: x+1
repeat = lambda n: (lambda s: s * n)
pipeline = Pipeline() | int | inc | double | str | repeat(3)
#calling... right to left :(
assert pipeline("1") == "444"
assert pipeline("20") == "424242"
我想添加例如rshift
运算符,但实际上它需要多次调度或其他操作,我不知道如何实现:
class Pipeline:
def __rshift__(arg,self):
return self(arg)
...
"20" >> pipeline
这显然是错误的:unsupported operand type(s) for >>: 'str' and 'Pipeline'
。
还有另一种方法可以实现“注入”函数参数吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。