以下是我在python shell中所做的事情。谁能解释其中的区别?
datetime.datetime.now() datetime.datetime(2018,9,29,21,34,10,847635)
print(datetime.datetime.now()) 2018-09-29 21:34:26.900063
答案 0 :(得分:1)
第一个是在日期时间值上调用repr
的结果,第二个是在日期时间上调用str
的结果。
Python shell在打印之前对None以外的值调用repr
,而print
在调用str
之前尝试repr
(如果str
失败)。
这不依赖于Python版本。
答案 1 :(得分:0)
调用print时,将调用类__str__()
的内部datetime
。此函数调用isoformat()
并以ISO格式返回日期。
def __str__(self):
"Convert to string, for str()."
return self.isoformat(sep=' ')
在外壳中输入对象的名称时,将调用__repr__()
并返回该对象的形式表示。