作用

在 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()函数的区别相关推荐

  1. Python中str()与repr()函数的区别——repr() 的输出追求明确性,除了对象内容,还需要展示出对象的数据类型信息,适合开发和调试阶段使用...

    Python中str()与repr()函数的区别 from:https://www.jianshu.com/p/2a41315ca47e 在 Python 中要将某一类型的变量或者常量转换为字符串对象 ...

  2. python中str和repr_python中str()和repr()函数的区别

    Python 有办法将任意值转为字符串:将它传入repr() 或str() 函数. 函数str() 用于将值转化为适于人阅读的形式,而repr() 转化为供解释器读取的形式. 对于数值类型.列表类型, ...

  3. python中的repr是什么意思_python中str和repr有什么区别

    python中str和repr有什么区别?下面给大家详细介绍: 1.内建函数str()和repr() 或反引号操作符(``)可以方便地以字符串的方式获取对象的内容.类型.数值属性等信息. 2.str( ...

  4. Python中str()、repr()、``的区别

    str()函数和repr()函数都是将任意数据类型转换为字符类型,但是它们之间又有一些区别,网上以及一些书籍上大多数都是这样描述: 函数str() 用于将值转化为适于人阅读的形式,而repr() 转化 ...

  5. python str和repr的区别_python中str和repr的区别是什么

    python中str和repr的区别是什么 发布时间:2020-09-09 13:49:03 来源:亿速云 阅读:72 作者:小新 小编给大家分享一下python中str和repr的区别是什么,希望大 ...

  6. python中str是什么函数_python里的str是什么函数

    python里的str是什么函数 发布时间:2020-05-18 11:39:40 来源:亿速云 阅读:280 作者:小新 今天小编给大家分享的是python里的str是什么函数,相信很多人都不太了解 ...

  7. python中内置函数的用法_python中str内置函数用法总结

    大家在使用python的过程中,应该在敲代码的时候经常遇到str内置函数,为了防止大家搞混,本文整理归纳了str内置函数.1字符串查找类:find.index:2.字符串判断类:islower.isa ...

  8. str函数和repr函数的区别

    2019独角兽企业重金招聘Python工程师标准>>> str()一般是将数值转成字符串. repr()是将一个对象转成字符串显示,注意只是显示用,有些对象转成字符串没有直接的意思. ...

  9. python requests中content与text方法的区别

    python requests中content与text方法的区别 目录 python requests中content与text方法的区别 目录 requests的作用 response的常用方法: ...

最新文章

  1. Python 爬取网页HTML代码
  2. BW report execution callstack
  3. 表单提交中Get和Post方式的区别及EncType表明提交数据的格式详解
  4. 使用Zuul和Spring Boot创建API网关
  5. 技术MBA高科技企业的“宠儿”
  6. 2017.3.25 最长递增子序列 失败总结
  7. ubuntu 远程连接服务器以及文件传输
  8. react 使用cookie react-cookies
  9. Coreldrawx6(cdrx6)
  10. Windows10+Caffe+CUDA7.5+VS2013环境配置
  11. Lisp语言中的print函数
  12. 对于此版本,windows installer和即点即用的Office不能并行运行,因此只能安装一种类型(安装Visio破解版时的报错)
  13. input checkbox 获取选中值和设置选中状态
  14. Win10自带录屏怎么用?一键开启,超级简单!
  15. 街霸5服务器链接已中断,《街头霸王5》常见问题解决方法
  16. linux服务器好管理吗,给初学者Linux服务器管理建议
  17. walking机器人入门教程-硬件清单
  18. 每天一个Linux命令-使用du查看文件大小
  19. 还在用excel做应收应付管理吗?你的痛苦我都知道
  20. 尚硅谷尚品汇_后台管理项目

热门文章

  1. 无法想mysql进行插入_mysql 无法插入中文
  2. 结合html做界面_Spark UI界面实现原理
  3. Timus1430(裴蜀定理应用)
  4. hdu3549(网络流入门题-最大流的Ford-Fulkerson算法)
  5. 透过汇编另眼看世界之DLL导出函数调用
  6. Charles+安卓模拟器 抓取https请求
  7. Python TCP聊天器
  8. 《MySQL实战45讲》基础理论篇 1-8讲 学习笔记
  9. 如何在 Java 中正确使用 wait, notify 和 notifyAll – 以生产者消费者模型为例
  10. TOP级CG行业云渲染服务的演进之路