__str__和__repr的区别

Posted linshuhui

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了__str__和__repr的区别相关的知识,希望对你有一定的参考价值。

__str__
当你打印一个对象的时候 触发__str__
当你使用%s格式化的时候 触发__str__
str强转数据类型的时候  触发__str__

__repr__
repr是str的备胎
有__str__的时候执行__str__,没有实现__str__的时候,执行__repr__
repr(obj)内置函数对应的结果是 __repr__的返回值
当你使用%r格式化的时候 触发__repr__
class Student:
    def __init__(self,name,age):
        self.name = name
        self.age = age
    def __str__(self):
        return str: name:%s,age:%s%(self.name,self.age)
    def __repr__(self):
        return repr: name:%s,age:%s%(self.name,self.age)
s1 = Student(zs,18)
print(s1)

技术分享图片

 

以上是关于__str__和__repr的区别的主要内容,如果未能解决你的问题,请参考以下文章

Python中__str__和__repr__的区别

Python学习:__repr__和__str__区别

python笔记70 - Python中__repr__和__str__区别

6.4定制类

python __str__ , __repr__区别

Python中__repr__和__str__区别