Einschlüsse in Python
Wie auch bei der Rückgabe aus einer anderen lambda-Funktion, so wird der Wert eines Parameters (unten: »k«) in einer zurückgegebenen lambda-Funktion „eingeschlossen“.
- Protokoll
def f( k ):
return lambda x: k + x
g = f( 'abc' ) # g = lambda x: 'abc' + xg( 'def' )
'abcdef'
g( 'ghi' )
'abcghi'
h = f( 'jkl' ) # h = lambda x: 'jkl' + x
h( 'def' )
'jkldef'
h( 'ghi' )
'jklghi'
g( 'ghi' )
'abcghi'
Dasselbe Prinzip kann auch mit einer verschachtelten Funktionsdefinition umgesetzt werden.
- Protokoll
def f( k ):
def n( x ):
return k + x
return ng = f( 'abc' ) # def n( x ): return 'abc' + x # g = n
g( 'def' )
'abcdef'
g( 'ghi' )
'abcghi'
h = f( 'jkl' ) # def n( x ): return 'jkl' + x # h = n
h( 'def' )
'jkldef'
h( 'ghi' )
'jklghi'
g( 'ghi' )
'abcghi'