__str__ 和 __repr__

Posted yandh

tags:

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

‘‘‘
___repr__
在交互模式下输入实例 按下回车的时候自动调用
__str__
在调用print函数 打印实例的时候自动调用

‘‘‘

class Test:
def __init__(self,name = "yy",age=21):
self.name = name
self.age = age

class TestStr(Test):
#:没有__str__的时候 __repr__ == __str__

# def __str__(self):
# return "%s:%s"%(self.name,self.age)
def __repr__(self):
return "%s:%s"%(self.name,self.age)
t1 = TestStr()
print(t1)

#:如果仔细探究__str__ 和 __repr__ 有什么区别

先使用__str__

技术图片

 

#:可以看到我直接输入t1 打印的是内存当中的地址

#:再来看__repr__

技术图片

 

 #:结论:

‘‘‘

在使用__str__时直接输入实例并不会打印出结果

但使用__repr__时直接输入实例便可以把调用出结果而非实例在内存中的地址

 

‘‘‘

 

 








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

__str__ 和 __repr__

python3.x __str__与__repr__

Python学习:__repr__和__str__区别

python类中方法__str__()和__repr__()简单粗暴总结

python_魔法方法:__str__()和__repr__()

Python中__str__和__repr__的区别