>>>
def
parrot
(voltage, state
=
'a stiff'
, action
=
'voom'
):
...
(
"-- This parrot wouldn't"
, action, end
=
' '
)
...
(
"if you put"
, voltage,
"volts through it."
,
end
=
' '
)
...
(
"E's"
, state,
"!"
)
...
>>>
d
=
{
"voltage"
:
"four million"
,
"state"
:
"bleedin'
demised"
,
"action"
:
"VOOM"
}
>>>
parrot(
**
d)
-- This parrot wouldn't VOOM if you put four million volts
through it. E's bleedin' demised !
Μικρές ανώνυμες συναρτήσεις μπορούν να δημιουργηθούν
με τη λέξη-κλειδιά lambda. Η συνάρτηση αυτή επιστρέφει το
άθροισμα από δύο ορίσματα : lambda a, b: a + b. Οι
συναρτήσεις lambda μπορεί να χρησιμοποιηθούν οπουδήποτε και
αν βρίσκονται τα αντικείμενα των συναρτήσεων που
απαιτούνται. Συντακτικά περιορίζεται σε μία μόνο έκφραση.
Σημασιολογικά, είναι μόνο συντακτική για ένα κανονικό ορισμό
της συνάρτησης. Όπως ένθετη ορισμούς συναρτήσεων,
συναρτήσεις λάμδα μπορεί να παραπέμπει μεταβλητές από το
πεδίο που περιέχει:
>>>
def
make_incrementor
(n):
...
return
lambda
x: x
+
n
...
>>>
f
=
make_incrementor(
42
)
>>>
f(
0
)
42
>>>
f(
1
)
43
Το παραπάνω παράδειγμα χρησιμοποιεί μια έκφραση λάμδα
για να επιστρέψει μια συνάρτηση. Μια άλλη χρήση είναι να
περάσει ένα μικρή συνάρτηση ως παράμετρο:
>>>
pairs
=
[(
1
,
'one'
), (
2
,
'two'
), (
3
,
'three'
), (
4
,
'four'
)]
>>>
pairs
.
sort(key
=
lambda
pair: pair[
1
])
>>>
pairs
- A Mini greek notebook for Learning Python Programming
30