美文网首页
__str__、__repr__

__str__、__repr__

作者: noteby | 来源:发表于2019-02-21 10:21 被阅读0次
class Demo:

    def __init__(self):
        pass

    def __str__(self):
        """
        如果没有添加 __str__ 方法,Python 在需要该方法但找不到的时候,它会去调用 __repr__ 方法。
        因为 __str__ 的默认实现就是调用 __repr__ 方法
        
        推荐在写自己的类的时候至少添加一个 __repr__ 方法,这能保证类到字符串始终有一个有效的自定义转换方式

        :return:
        """
        return 'demo __str__'

    def __repr__(self):
        """
        列表以及字典等容器总是会使用 __repr__ 方法。即使你显式的调用 str 方法

        :return:
        """
        return 'demo __repr__'
>>> d = Demo()
>>> d
Out[6]: demo __repr__
>>> print(d)
demo __str__
>>> str(d)
Out[10]: 'demo __str__'
>>> str([d])
Out[8]: '[demo __repr__]'
>>> print([d])
[demo __repr__]

相关文章

网友评论

      本文标题:__str__、__repr__

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