【发布时间】:2017-06-29 06:22:53
【问题描述】:
目前我正在使用带有函数名称的字符串列表来修复我的软件流程:
flow = [
"func1",
"func2",
"func3",
"func4",
"func5"
]
然后我遍历流程并调用每个传递选项的流程:
options = {}
[getattr(__import__(phase), phase)(options) for phase in flow]
我想知道是否可以做同样的事情,但避免副作用,使用 reduce。目前,这种方法使函数接收选项,但没有必要为下一个函数返回选项,所以我正在更改在其他范围内声明的选项。
谢谢。
【问题讨论】:
-
你是如何建立这个列表的?你能把函数对象放在那个列表中吗
[func1, func2, ...]这样会更简单 -
为什么会简单很多?我只会删除 get 和 import 属性。
-
for 循环会产生副作用,我想使用最后一个函数的返回码结束软件。我的意思是,如果软件成功,最后一个函数会返回0,表示一切正常
-
所有函数都接收输入,前一个函数的输出调用
-
对不起,您理解的副作用在哪里?
标签: python functional-programming reduce