前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python中__str__和__repr__方法的区别

Python中__str__和__repr__方法的区别

作者头像
哒呵呵
发布2018-08-06 11:33:22
3680
发布2018-08-06 11:33:22
举报
文章被收录于专栏:鸿的学习笔记鸿的学习笔记

在stackoverflow有一个很精辟的回答解释这两个内置方法的区别,简单来说,__str__方法是表现给使用者使用的,而__repr__方法是给程序员用的。先从一个简单的例子来看看,这两个方法的使用:

代码语言:javascript
复制
class book:
    def __init__(self):
        pass

    def __str__(self):
        return '__str__'

    def __repr__(self):
        return '__repr__'

my_book=book()
print(my_book)
__str__
my_book
Out[13]: __repr__

我们可以简单的看出print方法调用的是__str__,因为这是展现给使用者的,而直接在python的解释器,返回的是__repr__方法。可能这么说还是有些迷糊,更具体的我们可以从python的标准方法datetime看看,一个标准的python对象该如何使用这个方法。

代码语言:javascript
复制
import datetime 
today=datetime.date.today()
str(today)
Out[16]: '2018-02-15'
repr(today)
Out[17]: 'datetime.date(2018, 2, 15)'

管中窥豹,str(today)返回的是2018-02-15,我们可以看出来具体的时间,而repr(today)返回的是datetime.date这个方法,显然我们可以直接使用这个方法实例化。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-04-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 鸿的学习笔记 微信公众号,前往查看

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

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

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