美文网首页
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