解释 Python 中的 str() 与 repr() 函数
pythonserver side programmingprogramming
Python 官方文档称 __repr__ 用于查找对象的"官方"字符串表示,而 __str__ 用于查找对象的"非正式"字符串表示。print 语句和 str() 内置函数使用 __str__ 显示对象的字符串表示,而 repr() 内置函数使用 __repr__ 显示对象。让我们举一个例子来了解这两种方法实际上做了什么。
让我们创建一个 datetime 对象 −
>>> import datetime >>> today = datetime.datetime.now() When I use the built-in function str() to display today: >>> str(today) '2018-01-12 09:21:58.130922'
我们看到日期以字符串的形式显示,这样用户可以理解日期和时间。现在让我们看看何时使用内置函数 repr()−
>>> repr(today) 'datetime.datetime(2018, 1, 12, 9, 21, 58, 130922)'
我们看到这也返回了一个字符串,但该字符串是 datetime 对象的"官方"表示,这意味着这个"官方"字符串表示可以重建对象 −
>>> eval('datetime.datetime(2018, 1, 12, 9, 21, 58, 130922)')
datetime.datetime(2018, 1, 12, 9, 21, 58, 130922)
eval() 内置函数接受字符串并将其转换为 datetime 对象。
因此,一般来说,我们编写的每个类都必须有一个 __repr__,如果您认为拥有对象的字符串版本会很有用,例如在 datetime 的情况下,请创建一个 __str__ 函数。
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

