Уведомления

Группа в Telegram: @pythonsu

#1 Июль 17, 2009 23:42:01

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

Примеры выгодного практического применения lambda-функций

Вот вам еще примерчик. Может немного искусственный, но простой: генерация списка функций возведения в степени:

lambdas = [lambda z, y=x: z**y for x in range(10)]
for f in lambdas:
print f(6)
1
6
36
216
1296
7776
46656
279936
1679616
10077696



Офлайн

#2 Июль 18, 2009 09:45:06

j2a
От:
Зарегистрирован: 2006-06-29
Сообщения: 869
Репутация: +  1  -
Профиль   Отправить e-mail  

Примеры выгодного практического применения lambda-функций

pasaranax
То есть лямбду удобно применять там, где надо передать небольшую функцию, как объект?
да



Офлайн

#3 Июль 19, 2009 08:46:52

Griffon
От: Ukrain, Zaporozhie
Зарегистрирован: 2009-03-04
Сообщения: 324
Репутация: +  11  -
Профиль   Отправить e-mail  

Примеры выгодного практического применения lambda-функций

Создавал динамически кнопочки в tkinter, нужно было вызывать функцию с разными параметрами, лямбда - самое оно.



Офлайн

#4 Июль 21, 2009 10:09:29

balu
От:
Зарегистрирован: 2006-05-24
Сообщения: 521
Репутация: +  0  -
Профиль   Отправить e-mail  

Примеры выгодного практического применения lambda-функций

pasaranax
То есть лямбду удобно применять там, где надо передать небольшую функцию, как объект?
lambda очень удобна для всяких мелких вспомогательных функций, которые невыгодно оформлять в виде отдельных функций. Бяда в том, что в Python от нее мало толку :(



Офлайн

#5 Июль 22, 2009 01:04:57

bw
От:
Зарегистрирован: 2007-09-26
Сообщения: 938
Репутация: +  20  -
Профиль   Адрес электронной почты  

Примеры выгодного практического применения lambda-функций

Часто её использую подобным образом:

class FooAdapter:
bar = property(lambda self: self.original.bar)

def __init__(self, original):
self.original = original
Или можно использовать так:
count = lambda Model: session.query(Model).count()
print count(Foo)
print count(Bar)
print count(Baz)
print count(Qux)
В последнем случае - скорее для читаемости, чем для чего-либо еще.
Ну и самое место лямбде в map, reduce, filter, list.sort и прочем.

..bw



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version