【Python】Python中str()和repr()函数的区别
作用
在 Python 中要将某一类型的变量或者常量转换为字符串对象通常有两种方法,即 str()
或者 repr()
。
区别与使用
参考文章:Python 中 str() 和 repr() 函数的区别
函数 str()
用于将值转化为适于人阅读的形式,而 repr()
转化为供解释器读取的形式(如果没有等价的语法,则会发生 SyntaxError
异常), 适合开发和调试阶段使用。
>>> number = 123456789
>>> type(str(number))
<class 'str'>
>>> type(repr(number))
<class 'str'>
>>> print(repr(number))
123456789
>>> print(str(number))
123456789
两个函数返回的类型是相同的,值也是相同的。
>>> print(str('123456789'))
123456789
>>> print(repr('123456789'))
'123456789'
但当我们把一个字符串传给 str()
函数再打印到终端的时候,输出的字符不带引号。而将一个字符串传给 repr()
函数再打印到终端的时候,输出的字符带有引号。
造成这两种输出形式不同的原因在于:
print 语句结合 str()
函数实际上是调用了对象的 __str__
方法来输出结果。而 print 结合 repr()
实际上是调用对象的 __repr__
方法输出结果。下例中我们用 str
对象直接调用这两个方法,输出结果的形式与前一个例子保持一致。
>>> print('123456789'.__repr__())
'123456789'
>>> print('123456789'.__str__())
123456789
实战:自定义类的 str()
与 repr()
示例 1:仅在类中声明__str__
方法
自定义类如下:
class ValueTime:value = -1time = ''def __init__(self, value, time):self.value = valueself.time = timedef __str__(self):return "ValueTime:value={}, time={}".format(self.value, self.time)
输出由ValueTime组成的list组成的list(list嵌套),实际输出的是对象的类名,并没有调用到自定义的__str__
方法。
[[<app.models.ValueTime instance at 0x0000000003E02AC8>, <app.models.ValueTime instance at 0x0000000003E02B08>, <app.models.ValueTime instance at 0x0000000003E02B48>, …], […], […], …]
示例 2:在类中声明__repr__
方法与__str__
方法
自定义类如下:
class ValueTime:value = -1time = ''def __init__(self, value, time):self.value = valueself.time = timedef __str__(self):return "ValueTime:value={}, time={}".format(self.value, self.time)def __repr__(self):return "ValueTime:value={}, time={}".format(self.value, self.time)
输出由ValueTime组成的list组成的list(list嵌套),可以输出自定义格式化的对象,此时调用到了自定义的__repr__
方法。
[[ValueTime:value=22, time=2009-03-27, ValueTime:value=11, time=2009-03-30, ValueTime:value=22, time=2009-03-31, ValueTime:value=33, time=2009-04-01], […], […], …]
【Python】Python中str()和repr()函数的区别相关推荐
- Python中str()与repr()函数的区别——repr() 的输出追求明确性,除了对象内容,还需要展示出对象的数据类型信息,适合开发和调试阶段使用...
Python中str()与repr()函数的区别 from:https://www.jianshu.com/p/2a41315ca47e 在 Python 中要将某一类型的变量或者常量转换为字符串对象 ...
- python中str和repr_python中str()和repr()函数的区别
Python 有办法将任意值转为字符串:将它传入repr() 或str() 函数. 函数str() 用于将值转化为适于人阅读的形式,而repr() 转化为供解释器读取的形式. 对于数值类型.列表类型, ...
- python中的repr是什么意思_python中str和repr有什么区别
python中str和repr有什么区别?下面给大家详细介绍: 1.内建函数str()和repr() 或反引号操作符(``)可以方便地以字符串的方式获取对象的内容.类型.数值属性等信息. 2.str( ...
- Python中str()、repr()、``的区别
str()函数和repr()函数都是将任意数据类型转换为字符类型,但是它们之间又有一些区别,网上以及一些书籍上大多数都是这样描述: 函数str() 用于将值转化为适于人阅读的形式,而repr() 转化 ...
- python str和repr的区别_python中str和repr的区别是什么
python中str和repr的区别是什么 发布时间:2020-09-09 13:49:03 来源:亿速云 阅读:72 作者:小新 小编给大家分享一下python中str和repr的区别是什么,希望大 ...
- python中str是什么函数_python里的str是什么函数
python里的str是什么函数 发布时间:2020-05-18 11:39:40 来源:亿速云 阅读:280 作者:小新 今天小编给大家分享的是python里的str是什么函数,相信很多人都不太了解 ...
- python中内置函数的用法_python中str内置函数用法总结
大家在使用python的过程中,应该在敲代码的时候经常遇到str内置函数,为了防止大家搞混,本文整理归纳了str内置函数.1字符串查找类:find.index:2.字符串判断类:islower.isa ...
- str函数和repr函数的区别
2019独角兽企业重金招聘Python工程师标准>>> str()一般是将数值转成字符串. repr()是将一个对象转成字符串显示,注意只是显示用,有些对象转成字符串没有直接的意思. ...
- python requests中content与text方法的区别
python requests中content与text方法的区别 目录 python requests中content与text方法的区别 目录 requests的作用 response的常用方法: ...
最新文章
- Python 爬取网页HTML代码
- BW report execution callstack
- 表单提交中Get和Post方式的区别及EncType表明提交数据的格式详解
- 使用Zuul和Spring Boot创建API网关
- 技术MBA高科技企业的“宠儿”
- 2017.3.25 最长递增子序列 失败总结
- ubuntu 远程连接服务器以及文件传输
- react 使用cookie react-cookies
- Coreldrawx6(cdrx6)
- Windows10+Caffe+CUDA7.5+VS2013环境配置
- Lisp语言中的print函数
- 对于此版本,windows installer和即点即用的Office不能并行运行,因此只能安装一种类型(安装Visio破解版时的报错)
- input checkbox 获取选中值和设置选中状态
- Win10自带录屏怎么用?一键开启,超级简单!
- 街霸5服务器链接已中断,《街头霸王5》常见问题解决方法
- linux服务器好管理吗,给初学者Linux服务器管理建议
- walking机器人入门教程-硬件清单
- 每天一个Linux命令-使用du查看文件大小
- 还在用excel做应收应付管理吗?你的痛苦我都知道
- 尚硅谷尚品汇_后台管理项目
热门文章
- 无法想mysql进行插入_mysql 无法插入中文
- 结合html做界面_Spark UI界面实现原理
- Timus1430(裴蜀定理应用)
- hdu3549(网络流入门题-最大流的Ford-Fulkerson算法)
- 透过汇编另眼看世界之DLL导出函数调用
- Charles+安卓模拟器 抓取https请求
- Python TCP聊天器
- 《MySQL实战45讲》基础理论篇 1-8讲 学习笔记
- 如何在 Java 中正确使用 wait, notify 和 notifyAll – 以生产者消费者模型为例
- TOP级CG行业云渲染服务的演进之路