Python学习:__repr__和__str__区别
发布日期:2021-05-07 19:49:59 浏览次数:13 分类:技术文章

本文共 828 字,大约阅读时间需要 2 分钟。

文章目录

一、 __repr__

class Name:    def __init__(self,name):        self.name = name

在这里插入图片描述

上面打印类对象并不是很友好,显示的是对象的内存地址
此时我们重构 __repr__

class Name:    def __init__(self,name):        self.name = name    def __repr__(self):        return 'Name: %s' % self.name

在这里插入图片描述重构__repr__方法后,不管直接输出对象(面向开发者)还是通过print(面向用户)打印的信息都按我们__repr__方法中定义的格式进行显示了

二、 __str__

此时我们尝试下重构__str__

class Name:    def __init__(self,name):        self.name = name    def __str__(self):        return 'Name: %s' % self.name

在这里插入图片描述

此时,直接输出对象(面向开发者)显示对象的内存地址,使用print输入对象显示的是友好提示

三、总结

如果要把一个类的实例变成 str,就需要实现特殊方法__str__()

__repr____str__这两个方法都是用于显示的,__str__是面向用户的,而__repr__面向开发者

想要直接输出对象(面向开发者)和使用 print 输入对象都显示的是友好提示除了重构__repr__,还可以重构__str__实现

class Name:    def __init__(self,name):        self.name = name    def __str__(self):        return 'Name: %s' % self.name    __repr__ = __str__

在这里插入图片描述

上一篇:Python学习:属性访问
下一篇:Python学习:简单定制定时器

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2025年03月27日 21时37分51秒