前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python中直接查看对象值和使用print()输出的区别

Python中直接查看对象值和使用print()输出的区别

作者头像
Python小屋屋主
发布2018-04-16 16:35:26
1.3K0
发布2018-04-16 16:35:26
举报
文章被收录于专栏:Python小屋Python小屋

直接用代码来描述这个问题的现象:

>>> x = r'C:\windows\notepad.exe'

>>> x

'C:\\windows\\notepad.exe'

>>> print(x)

C:\windows\notepad.exe

>>> x = '''Tom said, "Let's go."'''

>>> x

'Tom said, "Let\'s go."'

>>> print(x)

Tom said, "Let's go."

仔细看的话会注意到,直接查看字符串x的值,和使用print(x)来输出字符串的值,得到的结果略有不同。原因在哪里呢?这要从Python类的特殊方法说起,在Python类中有两个特殊方法__str__()和__repr__(),前者在使用print()查看对象值时会自动调用,而后者则在直接查看对象值时自动调用。下面的代码说明了这两个特殊方法的用法,这样也就能明白上面代码运行结果了。

>>> class T:

def __str__(self):

return '3'

def __repr__(self):

return '5'

>>> t = T()

>>> t

5

>>> print(t)

3

补充:在Python内置类型中,特殊方法__repr__()和__str__()的解释如下:

__repr__(self, /)

Return repr(self).

__str__(self, /)

Return str(self).

而对于内置函数repr()的解释如下:

>>> help(repr)

Help on built-in function repr in module builtins:

repr(obj, /)

Return the canonical string representation of the object.

For many object types, including most builtins, eval(repr(obj)) == obj.

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

本文分享自 Python小屋 微信公众号,前往查看

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

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

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