Python

Не могу понять

Зачем в Питоне нужно присваивать функции к переменным, если их можно просто по имени вызвать ?
непонятно о чём конкретно речь (все случаи тривиальны)
1 о функции, передаваемой как параметр.
foo(x) : block1; x; block2
неравнозначно, тк последовательность изменена
x;block1; block2 (вызов "просто по имени ")
или ещё вариант
можно написать равнозначный последовательный код
x();foo();y();foo()...
а можно foo(x);foo(y)... уже, как автору понравится

Тут как с объяснением анекдота. Некоторым не поможет, да и нельзя иногда это сделать
2 о возвращаемых значениях функции (?)
3 всё-таки о переменных
x=foo();print (x)
или print (foo())"своя рука- владыка". Кто как хочет, так и пишет
АШ
Александр Шестоперов
99 002
Лучший ответ
В Python лямбды анонимные. Их либо сразу использовать - как параметр функции, либо присваивать переменным - для последующего использования.

В целом же, даже именованные функции присваивают переменным для удобства. Возьмём, например, банальный калькулятор. Его можно написать, перечисляя все возможные операции в if:
 op, a, b = input().split()
if op == '+': print(float(a) + float(b))
elif op == '-': print(float(a) - float(b))
elif op == '*': print(float(a) * float(b))
elif op == '/': print(float(a) / float(b))
А можно просто сделать словарь функций:
 from operator import * 
op, a, b = input().split()
print({'+': add, '-': sub, '*': mul, '/': truediv}[op](float(a), float(b)))
Функция - это такое же значение, как и число. И присваивание функций переменным, передача функций в качестве параметров других функций - это способ упрощения кода. Возьми, например sort / sorted - там для сложных сортировок функции сортировки передаётся пользовательская функция, задающая порядок сортировки.

Главное - не увлекаться. А то код превратится в говнокод.
Максим Напоров
Максим Напоров
56 739
Нет никакого "нужно". Просто это используется где-то для удобства. Тот же пример с tkinter Button - откуда tkinter узнает, какую функцию запускать, если ты ее не предоставишь?
Михаил Эфиопов я вообще не понял, что значит
присваивать функции к переменным
Евгений Смирнов кароче это типо чтоб много не писать
Переменные передаются в функцию.
Ты можешь присвоить переменной функцию.
У тебя вопрос странный, где ты это вычитал?
И это делать вообще не обязательно.
Элиф Саидов
Элиф Саидов
13 649
Есть правила.
Но если твой способ рабочий, и тебе легче так делать, то пожалуйста.
Главное чтобы код работал