Вопрос по общей теории Python. Чем оператор отличается от функции?
Заметил разделение на функции и операторы в питоне.
Нашел такие определения в книге A Byte of Python:
Функции – это многократно используемые фрагменты программы. Они позволяют дать имя определённому блоку команд с тем, чтобы впоследствии запускать этот блок по указанному имени в любом месте программы и сколь угодно много раз. Это называется вызовом функции.
Операторы – это некий функционал, производящий какие-либо действия, который может быть представлен в виде символов, как например +, или специальных зарезервированных слов. Операторы могут производить некоторые действия над данными, и эти данные называются операндами. В нашем случае 2 и 3 – это операнды.
Как мне кажется определения в чем то схожи, так в чем главные отличия?
Ответы (4 шт):
Если привести аналогии.
Инструкция или оператор - это слова в языке.
Функции - предложения.
то есть Функции - состоят из Инструкций и/или операторов, обратное не верно
Хочу добавить, что функции не всегда многократно используются, и их нельзя использовать сколько угодно раз. Во первых, есть такая забавная штука, называется lambda функция. Это безыменная одноразовая функция. А во вторых, функция можно использовать только 1000 раз в программе, но это можно изменить
Всё достаточно расплывчато, учитывая, что есть перегрузка операторов -- вызов функции выглядит как оператор: https://pythonworld.ru/osnovy/peregruzka-operatorov.html
Это больше вопрос читаемости: add(a,multiply(b,c)) и a+b*c.
Хотя обычно оператором обозначается некое боллее примитивное действие.
В некоторых языках разницы нет:
a --==***==-- b и a.--==***==--(b) -- одинаковые вызовы метода --==***==--
При перегрузке операторов стоит знать меру -- разобраться, что делает a.--==***==--(b) сложнее, чем a.shakeAndPut(b)
Из математической точки зрения оператор то же самое, как функция, только форма другая.
Например, для бинарных операторов:
a оператор b
возможно применить (в математике) запись
оператор(a, b)
(и даже так называемую польскую запись оператор a b, когда скобки совсем не нужны).
В языках программирования обычно не употребляются обе формы (функция и оператор) для той же самой операции, и когда употребляются, их имени чаще всего разны (например + и sum).
Тоже, для операторов обычно используются специальные символы (+, /, ** и тд.), а для функций (главным образом) буквы и цифры.