python 3,打印功能如何更改输出?

时间:2018-09-30 05:33:25

标签: python python-3.x printing

以下是我在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

    
  

2 个答案:

答案 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__()并返回该对象的形式表示。