将其他参数传递给Python管道(pipetools)

时间:2016-07-16 20:08:22

标签: python parameters pipe

是否可以将其他参数传递给管道,例如:

我们有:

v= (s > pipe | a | b | c)

这与

相同
v= c(b(a(s)))

如何使用管道,如:

v= c(b(a(s), d))

3 个答案:

答案 0 :(得分:2)

这里的图书馆作者现在随机发现了这个问题,但是也许仍然可以帮助某个人。

如果您需要局部应用,而管道输入必须位于局部应用参数的前面或中间,则可以使用X对象为其标记空间。因此,对于您的示例,您可以这样做:

from pipetools import pipe, X

...

v = s > pipe | a | (b, X, d) | c

此功能由xpartial功能启用,也可以在管道外部使用。更多信息in the docs

答案 1 :(得分:1)

根据此处的示例http://0101.github.io/pipetools/doc/#automatic-partial-application-in-the-pipe

您可以使用v= s > pipe | a | (b,d) | c

等于v= c(b(d, a(s)))

我不知道如何获取v= c(b(a(s), d))或者管道工具包是否支持

答案 2 :(得分:0)

偶然发现了这个答案,以防万一有人需要另一个用例,

>>> from pipetools import pipe,X

>>> def multArgs(x,y):
       return x+y+1

>>> 1 > pipe | (multArgs,2) #4