打印相同的输出,如Python REPL中所示

时间:2014-12-12 17:24:04

标签: python python-3.x

考虑以下Python shell转储:

>>> from datetime import datetime
>>> d = datetime(2014,1,1)
>>> d
datetime.datetime(2014, 1, 1, 0, 0)
>>> print(d)
2014-01-01 00:00:00

如何在Python 3程序中创建字符串'datetime.datetime(2014, 1, 1, 0, 0)'

我的目标是从数据快照生成代码,以便为单元测试提供一组固定的数据。我试着搜索“python print repl output”和类似术语,但没有找到我希望的答案。

1 个答案:

答案 0 :(得分:1)

我看了built-in functionsrepr(object)的列表引起了我的注意。

  

返回包含对象的可打印表示的字符串。对于许多类型,此函数尝试返回一个字符串,该字符串在传递给eval()时会产生具有相同值的对象,否则表示形式是包含在尖括号中的字符串,其中包含类型的名称。对象以及通常包括对象的名称和地址的附加信息。类可以通过定义__repr__()方法来控制此函数为其实例返回的内容。

示例代码,从问题的终端延伸:

>>> repr(d)
'datetime.datetime(2014, 1, 1, 0, 0)'
>>> print(repr(d))
datetime.datetime(2014, 1, 1, 0, 0)