问题描述
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 (将#修改为@)