Ich weiß Funktionen als Argumente in Python herumgereicht werden können, aber ich verstehe nicht, warum ich kann das nicht tun:Warum kann ich beim Aufrufen einer anderen Funktion keine Funktion als Argument definieren?
>>> def foo(bar): return bar()
...
>>> foo(def a(): return 'hello')
File "<stdin>", line 1
foo(def a(): return 'hello')
^
SyntaxError: invalid syntax
wenn diese vollkommen gültig ist:
>>> def foo(bar): return bar()
...
>>> def a(): return 'hello'
...
>>> foo(a)
'hello'
Weil das ist, was die Sprachsyntax sagt. Eine [Funktionsdefinition] (https://docs.python.org/3/reference/compound_stmts.html#function-definitions) ist eine zusammengesetzte Anweisung, sie kann kein Funktionsargument sein. – jonrsharpe