2017-02-05 18 views
1

Моей программы является Bunge функций, называемых в порядке:Используя выходом из функции в качестве входных данных другого

function1 -> function2 -> function3 .... 

Все они получают тот же вход: словарь называется options.

Пример:

def function1(options): 
    # do something with options 

def function2(options): 
    # do other thing with options 

def function3(options): 
    # do other thing with options 

Есть ли какой-либо инструмент, чтобы помочь мне реализовать какую-то Fluent Interface?

В настоящее время я использую зацикливание:

flow = [function1, 
function2, 
function3] 

options = {} 
for phase in flow: 
    phase(options) 

Спасибо.

+3

Ваше текущее осуществление совершенна на основе информации, говоря о котором идет речь. –

ответ

-1

Это что-то похожее на то, что вы ищете?

https://mathieularose.com/function-composition-in-python/

def compose(*functions): 
    return functools.reduce(lambda f, g: lambda x: f(g(x)), functions, lambda x: x) 
+2

Зачем использовать это при написании цикла 'for' быстрее, эффективнее, чисты и читабельны? (который OP уже использует) –

+0

Это не будет работать для OP, потому что все эти функции мутируют arg на месте и возвращают None, как это принято для таких функций в Python. –