Вопрос:
Что такое 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