Ответ на вопрос сам по себе легко, no нет увеличения производительности при использовании анонимных функций в Python. Есть хороший шанс, что вы на самом деле делаете это медленнее.
Простые тесты timeit
на тривиальных функциях показывают, что между ними нет никакой реальной разницы. Мы принимаем эти две функции
def test(message):
return message + message
testanon = lambda message: message + message
, а затем использовать timeit
модуль, чтобы проверить их скорость выполнения:
не
>>> timeit.repeat("test('test')", setup="from __main__ import test")
[0.16360807418823242, 0.1602180004119873, 0.15763211250305176]
>>> timeit.repeat("testanon('test')", setup="from __main__ import testanon")
[0.15949010848999023, 0.15913081169128418, 0.17438983917236328]
Как видно, существует никакой реальной большой прирост производительности стоит на самом деле, учитывая, вашу проблему производительности наиболее вероятно, лежит где-то в другом месте.
Какая функция? Для проверки чего? –
300 килобайт не так уж и велико. Также уточните свою проблему более четко с конкретными примерами и деталями вашего кода, который вы хотите оптимизировать. – hexafraction
Вы знаете, что определения функций с лямбдой могут иметь только одно выражение? Если у вас не будет много однострочных функций, возвращающих значение, маловероятно, что вы сможете конвертировать их в lambdas. Даже если вы можете ожидать, что разница в производительности будет незначительной. –