self.exit=Button(self.win,text='Выход',command=lambda :self.win.destroy() )
# без lambda было так...
self.exit=Button(self.win,text='Выход',command=self.exit_action )
....
def exit_action(self):self.win.destroy()
self.exit=Button(self.win,text='Выход',command=self.win.destroy)
Viperнет, иначе, эта функция тут же вызовется…
2 igor.kaist, а в этом примере разве нельзя просто написать
>>> s=('111;222;333','555;666;777')
>>> map(lambda x: x.split(';'), s)
[['111', '222', '333'], ['555', '666', '777']]
>>> s = (1,2,3,4,5)
>>> map(lambda x: pow(x,3), s)
[1, 8, 27, 64, 125]
paganmindХм. Сомневаюсь я что это удачные примеры использование лямбды.
Целесообразно использовать там, где аргументом должна быть функция, которой у вас еще нет, но которую легко сделать на базе другой функции.
[x.split(';') for x in s]
[pow(x,3) for x in s]
>>> a = [(1, 2), (2, 9), (3, 5)]
>>> sorted(a)
<<< [(1, 2), (2, 9), (3, 5)]
>>> sorted(a, key=lambda x: x[1])
<<< [(1, 2), (3, 5), (2, 9)]
igor.kaistНепонял, с чего бы ей сразу вызываться??? Передаётся ф-ция, просто забрали обёртку в виде лямбды.
нет, иначе, эта функция тут же вызовется…
EdВозможно примеры неудачные. На простых показать сложно. Смысл примера был в том, чтобы не решить конкретную задачу, а передать функции (map), которая требует в качестве аргумента другую функцию, новую модифицированную функцию.
Хм. Сомневаюсь я что это удачные примеры использование лямбды.