为自己定义每个python类添加__repr__和__str__

Posted gsky

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为自己定义每个python类添加__repr__和__str__相关的知识,希望对你有一定的参考价值。

在类定义里,使用__str____repr__双下划线能够自行控制类中的字符串转换.

代码示例

class Car:
    def __init__(self,color,mileage):
        self.color = color
        self.mileage = mileage
        
    def __repr__(self):
        return (f\'{self.__class__.__name__}(\'
                f\'{self.color!r},{self.mileage!r})\')

    def __str__(self):
        return f\'a {self.color} car\'
    
    
my_car = Car(\'blue\',929192)
print(my_car)   
#=> a blue car
#=> 如果不定义__str__,则结果为 Car(\'blue\',929192)
  • __str__ 的结果应该是可读的.
  • __repr__ 的结果应该是无歧义的,方便开发人员调试.
  • 如果没有定义__str__ , 则会默认调用__repr__

Flutter 写的app, 需要源码可以私信~~

  • 简繁火星字体转换
  • 哄女友神器
  • 号码测吉凶
  • 电视节目直播表

最好的笔记软件

以上是关于为自己定义每个python类添加__repr__和__str__的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 SWIG 为 C++ 类提供 Python __repr__()

Python进阶-----通过类的内置方法__str__和__repr__自定制输出(打印)对象时的字符串信息

Python详解类的 __repr__() 方法

23 Python - 面向对象编程OOP

Python类的内置方法

python 的print和特殊方法 __str__和__repr__