|
Abbiamo visto come definire una funzione in maniera per così dire ufficiale.
È tuttavia possibile definire una funzione "al volo" e addirittura passarla come parametro ad una chiamata
di funzione o procedura. Vediamo come.
Innanzitutto consideriamo una normale espressione, come segue.
>>> x=4
>>> x+1
5
Come si vede, una normale espressione contenente variabili, può essere considerata una funzione se si aggiungiamo un modo per passare i parametri.
Questo modo è il "lambda" seguito da una lista di parametri, come segue:
lambda x: x+1
<function <lambda> at 0x018D8778>
f = lambda x: x+1
f(5)
6
L'espressione "lambda x: x+1" produce una funzione esattamente come "def f", con la differenza che quest'ultima assegna la line e un hanno funzione a un nome, mentre lambda produce un "valore funzionale" che può essere assegnata una qualsiasi variabile, per trasformarla in una funzione. Altra limitazione è che lambda può essere seguito solamente da una espressione, mentre la def può specificare un metodo in generale complesso, contenente comandi.
|