首页
学习
活动
专区
工具
TVP
发布

__str__

作者头像
py3study
发布2020-01-15 17:11:28
5630
发布2020-01-15 17:11:28
举报
文章被收录于专栏:python3python3

当打印一个类的实例时,返回的字符串是对象的地址信息,如<__main__.Student object at 0x109afb310>,很不好看 可通过在类内定义__str__(),这样打印实例时就会返回一个好看的字符串,而且容易看出实例内部重要的数据

定义__str__()

    class Student(object):
    
        def __init__(self, name):
            self.name = name
            
        def __str__(self):
            return 'Student object (name: %s)' % self.name
        
    print(Student('Michael'))    #输出:Student object (name: Michael)

直接输入变量

    s = Student('Michael')
    s    #输出:<__main__.Student object at 0x109afb310>,打印出来的实例还是不好看

定义__repr__()

  因为直接显示实例变量时,它调用的不是__str__(),而是__repr__()   __str__()和__repr__()区别   __str__()返回用户看到的字符串   __repr__()返回程序开发者看到的字符串,即__repr__()是为调试服务的   解决办法是再定义一个__repr__(),但是通常__str__()和__repr__()代码都是一样的   所以,有个偷懒的写法,就是直接将__str__ 赋给__repr__

    class Student(object):
    
        def __init__(self, name):
            self.name = name
            
        def __str__(self):
            return 'Student object (name=%s)' % self.name
            
        __repr__ = __str__    
        
    s = Student('Michael')
    s    #输出:Student object (name: Michael)
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-06-10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档