Да, безусловно, в Python функции являются объектами первого класса. Это означает, что с ними можно обращаться как и с любыми другими переменными. В частности, это позволяет:
Передача функции в качестве аргумента позволяет реализовать такие полезные вещи, как:
map()
, filter()
, sorted()
.Пример:
def apply_operation(x, y, operation):
return operation(x, y)
def add(x, y):
return x + y
def multiply(x, y):
return x * y
result1 = apply_operation(5, 3, add) # result1 будет равно 8
result2 = apply_operation(5, 3, multiply) # result2 будет равно 15
print(f"Result of addition: {result1}")
print(f"Result of multiplication: {result2}")
В этом примере функции add
и multiply
передаются как аргумент в функцию apply_operation
. Функция apply_operation
затем вызывает переданную функцию, выполняя соответствующую операцию.