美文网首页
python __str__()和__repr__()自定义类的

python __str__()和__repr__()自定义类的

作者: 孙广宁 | 来源:发表于2022-05-26 22:37 被阅读0次
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)
>>>

相关文章

网友评论

      本文标题:python __str__()和__repr__()自定义类的

      本文链接:https://www.haomeiwen.com/subject/ropyprtx.html