Что выведет этот код?


def f1(): 
    return "hi"

def f2(func): 
    return func()

print(f2(f1))

Результат выполнения кода: hi. Функция f2 принимает функцию f1 в качестве аргумента и затем вызывает её (func()). Функция f1 возвращает строку "hi", которая затем и выводится на экран.

Разбор кода:

Данный код демонстрирует концепцию функций первого класса в Python, а именно: функции могут быть переданы в качестве аргументов другим функциям и могут возвращаться в качестве результата.

  • def f1(): return "hi": Определяет функцию f1, которая не принимает аргументов и всегда возвращает строку "hi".
  • def f2(func): return func(): Определяет функцию f2, которая принимает один аргумент, func, который ожидается быть функцией. f2 вызывает функцию, переданную ей в качестве аргумента (func()), и возвращает результат этого вызова.
  • print(f2(f1)): Вызывает функцию f2, передавая ей функцию f1 в качестве аргумента. Внутри f2, f1() будет вызвана, вернет "hi", и f2 вернет это значение, которое затем будет выведено на консоль с помощью print().

Результат выполнения:

Код выведет в консоль строку:

hi

Важность концепции для собеседования:

Понимание функций первого класса критически важно для разработчика Python. Эта концепция является основой для многих продвинутых техник, таких как:

  • Callback-функции: Передача функций в качестве аргументов для обработки событий или завершения асинхронных операций.
  • Декораторы: Функции, которые "обертывают" другие функции, добавляя к ним функциональность (например, логирование, проверка прав доступа, кэширование).
  • Функциональное программирование: Использование функций как основных строительных блоков программы.

Понимание данной концепции говорит о базовых знаниях языка и умении писать более гибкий и расширяемый код. Это важный индикатор для работодателя.

0