8.1 我们想修改打印实例时候的输出,这样让输出的结果更具有意义
- 我们可以通过自定义的str()和repr()来实现。
>>> class Pair:
... def __init__(self,x,y):
... self.x =x
... self.y = y
... def __repr__(self):
... return 'Pair({0.x!r},{0.y!r})'.format(self)
... def __str__(self):
... return '({0.x!s},{0.y!s})'.format(self)
...
>>> p = Pair(3,4)
>>> p
Pair(3,4)
>>> print(p)
(3,4)
>>>
- 特殊方法repr()返回的是实例代码表示(code representation)通常可以用它返回的文本来创建这个实例
obj==eveal(repr(obj))
-
str()将实例转换为一个字符串
- !r表示使用repr()的输出,而不是默认的str()
- !s表示使用str()的输出
>>> print('p is {0!r}'.format(p))
p is Pair(3,4)
>>> print('p is {0}'.format(p))
p is (3,4)
>>> print('p is {0!s}'.format(p))
p is (3,4)
>>>
网友评论