Python 3, как функция печати меняет вывод? - PullRequest
0 голосов
/ 30 сентября 2018

Ниже было то, что я сделал в оболочке Python.Кто-нибудь может объяснить разницу?

datetime.datetime.now () datetime.datetime (2018, 9, 29, 21, 34, 10, 847635)

print (datetime.datetime.now ()) 2018-09-29 21: 34: 26.900063

Ответы [ 2 ]

0 голосов
/ 30 сентября 2018

Когда вызывается print, вызывается внутренний __str__() класса datetime.Эта функция вызывает isoformat() и возвращает дату в формате ISO.

    def __str__(self):
        "Convert to string, for str()."
        return self.isoformat(sep=' ')

Когда имя объекта вводится в оболочку, вызывается __repr__() и возвращается формальное представлениеобъект.

0 голосов
/ 30 сентября 2018

Первое - результат вызова repr для значения datetime, второе - результат вызова str для datetime.
Оболочка Python вызывает repr для значений, отличных от None, перед их печатьюв то время как print пытается str перед вызовом repr (если str не удается).

Это не зависит от версии Python.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...