Zwracane przez funkcję
Lekcja 4 z 9 w kursie Funkcje lambda w Pythonie w Coddy.
Innym interesującym zastosowaniem funkcji lambda jest zwracanie jej z funkcji.
Na przykład,
def power_of(a):
return lambda b : b ** a
cube = power_of(3) # przechowuje lambda b : b ** 3
square = power_of(2) # przechowuje lambda b : b ** 2
square_root = power_of(0.5) # przechowuje lambda b : b ** 0.5
print(cube(4)) # wyświetla 64
print(square(4)) # wyświetla 16
print(square_root(4)) # wyświetla 2Jak widzisz, to sposób na tworzenie wielu małych funkcji.
Możliwe jest również utworzenie funkcji lambda, która zwraca funkcję lambda (gdy jest to jedno wyrażenie),
power_of = lambda a : lambda b : b ** a
print(power_of(2)(5)) # wypisuje 25 = 5 ** 2Wyzwanie
ŁatwyUtwórz funkcję o nazwie message_constructor, która otrzymuje dwa ciągi znaków: imię i nazwisko. Nazwisko może mieć wartość None.
Funkcja utworzy imię i nazwisko z tych dwóch argumentów, zgodnie z następującymi warunkami:
- Jeśli istnieje tylko imię, nazwa będzie równa imieniu
- Jeśli istnieją oba argumenty, funkcja połączy je, wstawiając między nimi spację.
Funkcja zwróci funkcję lambda, która otrzyma jeden argument i zwróci ciąg znaków.
Przyjrzyj się przypadkom testowym, aby zrozumieć wymagany format zwracany przez funkcję lambda.
Spróbuj swoich sił
def message_constructor(first, last):
# Napisz tutaj kodWszystkie lekcje w sekcji Funkcje lambda w Pythonie
Poćwicz samodzielnie: Kompilator Python online