Назад

Вопрос:

Что такое def, return, lambda?

Как часто спрашивают: Постоянно

Кто предложил: ALittleMoron


Ответ:

Это зарезервированные в Python ключевые слова для работы с функциями.

Def

def пишут для объявления обычных функций. После него и пробела идет название функции.

Return

return нужен для возвращения значений из функции. Возвращать можно любую переменную, объявленную в самой этой функции или любой тип данных, объявленный сразу после return. Например:

def say_hello(name: str) -> str:
    return f'Hello, {name}!'
    
print(say_hello("John")
>>> Hello, John!

Здесь результирующая строка объявлена прямо после return.

Lambda

lambda нужна для объявления однострочных анонимных функций. Чаще всего анонимные функции передаются в другие функции. Их не рекомендуется присваивать к переменным, хотя Python это не запрещает. Также в таких функциях нет return, потому что они сразу возвращают значение из своего тела. say_hello в примере выше можно переписать так:

def hello_handler(name, func) -> None:
    hello_message = func(name)
    print(hello_message)

hello_handler("John", lambda name: f"Hello, {name}!")
>>> Hello, John!

Объяснение ответа на собеседовании:

Данный вопрос является вводным в тему функций. Интервьюер задает вопрос с целью понять, знает ли кандидат самые основы синтаксиса языка. Если кандидат не может ответить на этот вопрос, дальнейшие вопросы по теме не имеют смысла.

Далее интервьюер зачастую начинает углубляться в темы. Возможно, он задаст вопросы с подвохом, чтобы убедиться, что кандидат точно понимает данную тему. В таким вопросам можно отнести what-if-no-return-is-in-function