Python中str()与repr()函数的区别——repr() 的输出追求明确性,除了对象内容,还需要展示出对象的数据类型信息,适合开发和调试阶段使用...
Python中str()与repr()函数的区别
在 Python 中要将某一类型的变量或者常量转换为字符串对象通常有两种方法,即 str()
或者 repr()
。
>>> a = 10
>>> type(str(a))
<class 'str'>
>>> type(repr(a))
<class 'str'>
但是这二者之间有什么区别呢?因为提供两个功能完全相同的内建函数是没有意义的。先看一个例子。
>>> print(str('123'))
123
>>> print(str(123))
123
>>> print(repr('123')) '123' >>> print(repr(123)) 123
从例子中不难发现,当我们把一个字符串传给 str()
函数再打印到终端的时候,输出的字符不带引号。而将一个字符串传给 repr()
函数再打印到终端的时候,输出的字符带有引号。
造成这两种输出形式不同的原因在于:
print
语句结合str()
函数实际上是调用了对象的__str__
方法来输出结果。而print
结合repr()
实际上是调用对象的__repr__
方法输出结果。下例中我们用str
对象直接调用这两个方法,输出结果的形式与前一个例子保持一致。
>>> print('123'.__repr__())
'123'
>>> print('123'.__str__()) 123
不过这个例子可能还是无法很好表达到底 str()
与 repr()
各有什么意义,我们再来看一个例子。
>>> from datetime import datetime
>>> now = datetime.now()
>>> print(str(now))
2017-04-22 15:41:33.012917
>>> print(repr(now))
datetime.datetime(2017, 4, 22, 15, 41, 33, 12917)
通过 str()
的输出结果我们能很好地知道 now
实例的内容,但是却丢失了 now
实例的数据类型信息。而通过 repr()
的输出结果我们不仅能获得 now
实例的内容,还能知道 now
是 datetime.datetime
对象的实例。
因此 str()
与 repr()
的不同在于:
str()
的输出追求可读性,输出格式要便于理解,适合用于输出内容到用户终端。repr()
的输出追求明确性,除了对象内容,还需要展示出对象的数据类型信息,适合开发和调试阶段使用。
另外如果想要自定义类的实例能够被 str()
和 repr()
所调用,那么就需要在自定义类中重载 __str__
和 __repr__
方法。
转载于:https://www.cnblogs.com/bonelee/p/11251946.html
Python中str()与repr()函数的区别——repr() 的输出追求明确性,除了对象内容,还需要展示出对象的数据类型信息,适合开发和调试阶段使用...相关推荐
- python中的方法和函数的区别_python中函数与方法的区别?
Python中函数不是方法,主要有以下区别: 首先,从分类的角度来分析二者的区别 (1)函数的分类: 内置函数:python内嵌的一些函数. 匿名函数:一行代码实现一个函数功能. 递归函数:自己调用自 ...
- python中str是什么函数_python里的str是什么函数
python里的str是什么函数 发布时间:2020-05-18 11:39:40 来源:亿速云 阅读:280 作者:小新 今天小编给大家分享的是python里的str是什么函数,相信很多人都不太了解 ...
- python中的方法和函数的区别_Python中函数和方法的区别
在Python中函数和方法是有区别的. 区别一所处的位置:函数是直接写文件中而不是class中,方法是只能写在class中. 区别二定义的方式: 1.函数定义的方式 def关键字 然后接函数名 再是 ...
- python中协程与函数的区别_深入浅析python 协程与go协程的区别
进程.线程和协程 进程的定义: 进程,是计算机中已运行程序的实体.程序本身只是指令.数据及其组织形式的描述,进程才是程序的真正运行实例. 线程的定义: 操作系统能够进行运算调度的最小单位.它被包含在进 ...
- python中协程与函数的区别_python 协程与go协程的区别
进程.线程和协程 进程的定义: 进程,是计算机中已运行程序的实体.程序本身只是指令.数据及其组织形式的描述,进程才是程序的真正运行实例. 线程的定义: 操作系统能够进行运算调度的最小单位.它被包含在进 ...
- isdigit php,python中str内置函数isdigit、isdecimal、isnumeric的区别
isdigit.isdecimal.isnumeric的区别 isdecimal(...) | S.isdecimal() -> bool | | Return True if there ar ...
- python中str是什么函数_Python str()函数
描述 str函数是Python的内置函数,它将参数转换成字符串类型,即人适合阅读的形式. 语法 str(object) 名称说明备注 object待被转换成字符串的参数可省略的参数 返回值:返回obj ...
- python中协程与函数的区别_python协程和异步IO
1.并发.并行.同步.异步.阻塞.非阻塞 并发:是指在同一个时间段内,有几个程序都处于启动运行到运行结束之间 并行:在同一个时间点上,有几个程序同时运行 同步:当一个同步操作发出去后,调用者一直等待返 ...
- python中str是什么函数_python str函数怎么用
展开全部 是将一个2113对象转成字符串显示5261,注意只是显示用,有些对象4102转成字符串没有直1653接的意思. str():将变量转化为字符串类型 a = 1 b = [1, 2, 3] s ...
最新文章
- php设计是什么意思,php的设计模式是什么
- 低调!中国北斗核心卫星部署完成,开启“全球时代”!超越GPS指日可待
- 淘宝网商品库优化实践访谈
- ultraedit 运行的是试用模式_Wings面向企业级的单元测试用例自动编码引擎
- [转]jquery的一个模板引擎-zt
- 如何用Netty实现一个轻量级的HTTP代理服务器
- 推荐几个干货超多助你成长的前端大佬
- C# 对Ini文件操作(C# ini文件操作类)
- Adobe Acrobat DC
- java 转化为utc的时间_我6年时间成长为阿里Java架构师,你呢(附学习路线图)...
- 华为官方推特直接开骂@苹果,负责人称:被盗号了
- mysql 知识_关于mysql基础知识的介绍
- CCF 2013-12-1 出现次数最多的数
- 华为p20nfc怎么复制门禁卡_华为P20手机来刷门禁_如何给P20手机添加绑定门禁卡的方法...
- mtklog结构及分析
- 全网史上最全的AR学习开发资源汇总(转载他人整理作品,供参考)
- 2021牛客训练营 F.魏迟燕的自走棋(贪心并查集)
- matlab 统计数组频数_matlab统计 频数、频率和累积频率
- 下载spotify音乐_如何将Google Maps音乐控件用于Spotify,Apple Music或Google Play音乐
- 轿子vs.小汽车和电话vs.跟班
热门文章
- ajax post请求怎么传参_ajax用post方法传递参数
- mysql max和order by_mysql – 为什么MAX()比ORDER BY慢100倍… LIMIT 1?
- 南华大学计算机学院足球队,球场健儿,不言放弃——记南华大学“新生杯”足球赛...
- oracle 怎么创建约束,Oracle创建约束
- mysql获取两个表中日期字段的最小差值
- 多人合作开发的标准制定
- 机器学习(MACHINE LEARNING)灰色关联分析(GRA)
- 【Web安全】Weak Session IDs (弱会话IDs)-burp进行Cookie劫持
- 名片去噪识别-aip
- python爬虫动态加载页面_python3的爬虫笔记8——动态加载页面爬虫