Вопрос по общей теории Python. Чем оператор отличается от функции?

Заметил разделение на функции и операторы в питоне.

Нашел такие определения в книге A Byte of Python:

Функции – это многократно используемые фрагменты программы. Они позволяют дать имя определённому блоку команд с тем, чтобы впоследствии запускать этот блок по указанному имени в любом месте программы и сколь угодно много раз. Это называется вызовом функции.

Операторы – это некий функционал, производящий какие-либо действия, который может быть представлен в виде символов, как например +, или специальных зарезервированных слов. Операторы могут производить некоторые действия над данными, и эти данные называются операндами. В нашем случае 2 и 3 – это операнды.

Как мне кажется определения в чем то схожи, так в чем главные отличия?


Ответы (4 шт):

Автор решения: Aziz Umarov

Если привести аналогии. Инструкция или оператор - это слова в языке. Функции - предложения.

то есть Функции - состоят из Инструкций и/или операторов, обратное не верно

→ Ссылка
Автор решения: Arteman

Хочу добавить, что функции не всегда многократно используются, и их нельзя использовать сколько угодно раз. Во первых, есть такая забавная штука, называется lambda функция. Это безыменная одноразовая функция. А во вторых, функция можно использовать только 1000 раз в программе, но это можно изменить

→ Ссылка
Автор решения: Sergei Kirjanov

Всё достаточно расплывчато, учитывая, что есть перегрузка операторов -- вызов функции выглядит как оператор: https://pythonworld.ru/osnovy/peregruzka-operatorov.html

Это больше вопрос читаемости: add(a,multiply(b,c)) и a+b*c.

Хотя обычно оператором обозначается некое боллее примитивное действие.

В некоторых языках разницы нет: a --==***==-- b и a.--==***==--(b) -- одинаковые вызовы метода --==***==--

При перегрузке операторов стоит знать меру -- разобраться, что делает a.--==***==--(b) сложнее, чем a.shakeAndPut(b)

→ Ссылка
Автор решения: MarianD

Из математической точки зрения оператор то же самое, как функция, только форма другая.

Например, для бинарных операторов:

a оператор b

возможно применить (в математике) запись

оператор(a, b)

(и даже так называемую польскую запись оператор a b, когда скобки совсем не нужны).

В языках программирования обычно не употребляются обе формы (функция и оператор) для той же самой операции, и когда употребляются, их имени чаще всего разны (например + и sum).

Тоже, для операторов обычно используются специальные символы (+, /, ** и тд.), а для функций (главным образом) буквы и цифры.

→ Ссылка