Может ли кто-нибудь объяснить это поведение лямбда-функций?Лямбда и несколько операторов в Python
import sys
X = lambda: sys.stdout.write('first');sys.stdout.write("second")
X()
Возвращает: -> secondfirst
И еще одна проблема:
lambda: sys.stdout.write("...");sys.exit(0)
Или
lambda: sys.exit(0);sys.stdout.write("...")
Не выполняет правильно. И еще один вопрос, почему в первом потоке выполнения праймера идет справа налево?
Попытка с: Python3 + (3.4, 3.2) ОС: Linux (Ubuntu), OSX
Почему вы хотите сделать лямбду таким вот? –
Я не хочу использовать лямбда таким образом, первый праймер был найден в коде плагина nagios, и я был любопытным, почему он работает таким образом :) – user4549992
'lambda's are * expressions * и их тело должно быть выражением. Вы не можете ** поставить утверждение внутри лямбды, не говоря уже о нескольких утверждениях. – Bakuriu