Функция как тип, параметр и результат другой функции
@ProgHelpBotФункция как тип
Функция фактически представляет отдельный тип. Можно присвоить переменной какую-нибудь функцию и затем, используя переменную, вызывать данную функцию.
def say_hello(): print("Hello")
message = say_hello
message() # Hello
Подобным образом можно через переменную вызывать функцию с параметрами и возвращать ее результат.
def get_sum(a, b): return a + b operation = get_sum() result = operation(1, 3) print(result) # 4
Функция как параметр функции
Функцию можно передать в качестве параметра в другую функцию.
def print_operation(a, b, operation): result = operation(a, b) print(result) def get_sum(a, b): return a + b def get_multiply(a, b): return a * b print_operation(1, 3, get_sum) # 4 print_operation(1, 3, get_mulruply) # 3
Функция как результат функции
Функция может возвращать другую функцию.
def get_sum(a, b): return a + b
def get_multiply(a, b): return a * b
def select_operation(choice):
if choice == 1:
return get_sum
elif choice == 2:
return get_multiply
operation = select_operation(1)
print(operation(1, 3)) # 4
operation = select_operation(2)
print(operation(1, 3)) # 3