Python: __add__ и +, разное поведение с числами с плавающей запятой и целыми числами.Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Python: __add__ и +, разное поведение с числами с плавающей запятой и целыми числами.

Сообщение Anonymous »

При добавлении целочисленного значения к значению с плавающей запятой я понял, что метод __add__ работает нормально, если вызывается с плавающей запятой, например:

Код: Выделить всё

>>> n = 2.0
>>> m = 1
>>> n.__add__(m)
3.0
но не при вызове целого числа:

Код: Выделить всё

>>> m.__add__(n)
NotImplemented
Сначала я думал, что __add__ просто реализуется по-разному для типов int и float (например, типы float, допускающие добавлено к типам int, но не наоборот). Затем я заметил, что все работает нормально, если вместо этого я использую оператор +:

Код: Выделить всё

>>> n + m
3.0
>>> m + n
3.0
Кто-нибудь знает, почему это происходит? Разве __add__ и + не тесно связаны друг с другом?

Подробнее здесь: https://stackoverflow.com/questions/386 ... nd-integer
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»