2017-02-05 3 views
1

Meine Software ist ein bunge von Funktionen aufgerufen, um:Mit Ausgabe von einer Funktion als Eingabe anderer

function1 -> function2 -> function3 .... 

sie alle den gleichen Eingang empfangen: ein Wörterbuch options genannt.

Probe:

def function1(options): 
    # do something with options 

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

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

Gibt es ein Tool, mir zu helfen, eine Art Fluent Interface zu implementieren?

Derzeit bin ich mit einem Looping:

flow = [function1, 
function2, 
function3] 

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

Dank.

+3

Ihre aktuelle Implementierung ist perfekt auf der Grundlage der Informationen in Frage erwähnen. –

Antwort

-1

Ist das etwas, wonach Sie suchen?

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

Warum man das beim Schreiben der 'for'-Schleife verwendet, ist schneller, effizienter, sauberer und lesbarer? (welches OP bereits verwendet wird) –

+0

Dies funktioniert nicht für das OP, da alle diese Funktionen das arg in-place mutieren und None zurückgeben, wie es für solche Funktionen in Python üblich ist. –

Verwandte Themen