Фиксированное DN из канонического имени и метки времени всегда устанавливается на: 01.01.1601 11:00:00?

В принятом ответе уже упоминается PEP 238 . Я просто хочу добавить быстрый взгляд за кулисы для тех, кто интересуется тем, что происходит, не читая весь PEP.

Python отображает такие операторы, как +, -, * и / к специальным функциям, например, a + b эквивалентен

a.__add__(b)

Что касается деления в Python 2, по умолчанию используется только /, который отображается на __div__, и результат зависит от типов ввода (например, int , float).

В Python 2.2 была введена функция __future__ division, которая изменила семантику деления следующим образом (TL; DR из PEP 238):

  • / отображается на __truediv__, который должен «возвращать разумную аппроксимацию математического результата деления» (цитата из PEP 238)
  • // отображается на __floordiv__, которая должна возвращаться польский результат /

С Python 3.0 изменения PEP 238 стали поведением по умолчанию, и в объектной модели Python не существует особого метода __div__.

Если вы хотите использовать тот же код в Python 2 и Python 3, используйте

from __future__ import division

и придерживайтесь семантики PEP 238 / и //.

0
задан halfer 19 March 2019 в 21:38
поделиться