2015-10-28 2 views
1

Например, всякий раз, когда мы перегружаем некоторые из операторов в python, таких как str, mul, add и т. Д. (Очевидно, с подчеркиванием с ними), но я считаю, что это методы, поэтому не следует ли это называть перегрузкой метода? я не прав.Почему это называется перегрузкой оператора, а не перегрузкой метода, поскольку мы перегружаем методы в python?

+0

Это не операторы. –

+0

Я думаю, что они! –

ответ

0

Устройство перегрузки оператора, имеющее «оператор» (например, * или +), выполняющее разные вещи в зависимости от контекста.

Метод перегрузки означает наличие нескольких методов с одним и тем же именем в одном классе, которые дифференцируются по их сигнатуре параметра.

В вашем примере на Python перегрузка оператора реализована путем предоставления специально названных методов (которые сами по себе не перегружены, если у вас есть только один из них для каждого класса для каждого имени).

+0

Да, я знаю это, но ваш ответ не отвечает на мой вопрос. –

+0

Почему бы и нет? Сколько методов '__add__' у вас есть на вашем классе? Если только один, перегрузки не происходит. – Thilo

+0

рассмотрите, если я пишу еще один метод __add__, чтобы перегрузить предопределенный метод __add__.Но мой вопрос: это называется перегрузкой оператора (перегрузка метода добавления), не следует ли это вместо того, чтобы вызывать перегрузку метода? –

Смежные вопросы