我在谷歌上找不到关于这个主题的任何东西,所以我想我应该在这里问一下:
可以像jQuery那样用Python链接函数吗?
['my', 'list'].foo1(arg1, arg2).foo2(arg1, arg2).foo3(arg1, arg2) #etc...
当我写这段代码时,我失去了很多空间和可读性:
foo3(foo2(foo1(['my', 'list'], arg1, arg2), arg1, arg2), arg1, arg2) #etc...
似乎有一些虚幻的图书馆为创造这样的功能,但我似乎不明白为什么这必须如此复杂的外观。。。
谢谢!
如果我们讨论的是对象方法,那么它很简单,只需要从每个方法中
return self
。另一方面,如果你想链接未绑定的函数,我真的没有必要按你想的方式链接它们。当然,它看起来不错,但是它在语义上不连贯,因为“.”代表对象属性访问,而不是“链”。以下是西蒙建议的扩展:
通过使用collections abstract base classes,可以更好地使
ListMutator
完全像一个列表。事实上,您可以对list
本身进行子类划分,尽管它可能会限制您执行某些可能需要执行的操作。。。我也不知道对内置类型(比如list
)进行子类化的一般看法。只要函数返回一个值,就可以将其链接起来。在jQuery中,选择器方法通常返回选择器本身,这就是允许您进行链接的原因。如果要在python中实现链接,可以执行以下操作:
但是,您的问题似乎是您的函数参数太窄。连锁不是解决这个问题的办法。如果要压缩函数参数,只需在将参数传递给函数之前将其分配给变量,如下所示:
相关问题 更多 >
编程相关推荐