Python str & repr

repr 更多是用来配合 eval 的 (<- 点击查看),str 更多是用来转换成字符串格式的

str() & repr()

str() 和 repr() 都会返回一个字符串

但是 str() 返回的结果更加适合于人阅读,repr() 返回的结果更适合解释器读取

两者差异

示例:

string = 'Hello World'
print(str(string), len(str(string)))
print(repr(string), len(repr(string)))

输出结果:

Hello World 11
'Hello World' 13

说明 str() 返回的仍然是字符串本身,但是 repr() 返回的是带引号的字符串

__repr__ & __str__

在一个类中 __repr____str__ 都可以返回一个字符串

示例:

当类中同时有这两个方法

class Test(object):
def __init__(self):
pass def __repr__(self):
return 'from repr' def __str__(self):
return 'from str' test = Test()
print(test)
print(test.__repr__())
print(test.__str__())

输出结果:

from str
from repr
from str

当类中只有 __str__ 方法时

class Test(object):
def __init__(self):
pass def __str__(self):
return 'from str' test = Test()
print(test)
print(test.__repr__())
print(test.__str__())

输出结果:

from str
<__main__.Test object at 0x105df89e8>
from str

当类中只有 __repr__ 方法时

class Test(object):
def __init__(self):
pass def __repr__(self):
return 'from repr' test = Test()
print(test)
print(test.__repr__())
print(test.__str__())

输出结果:

from repr
from repr
from repr

说明 print() 函数调用的是 __str__ ,而命令行下直接输出时调用的是 __repr__

当类中没有 __str__ 时,会调用 __repr__ ,但是如果没有 __repr__ ,并不会去调用 __str__

Python str & repr的更多相关文章

  1. 通俗易懂方式解说Python中repr(变量)和str(变量)函数的区别

    老猿在<Python中repr(变量)和str(变量)的返回值有什么区别和联系>介绍了repr(变量)和str(变量)的区别和联系(对应特殊方法__repr__和__str__),但老猿刚 ...

  2. Python中repr(变量)和str(变量)的返回值有什么区别和联系

    Python中repr(变量)和str(变量)都返回一个描述对象的字符串,二者有关联又有不同.由于Python3.0后都是新式类,我们的分析也是基于新式类进行的.基于object派生的新式类中二者之间 ...

  3. #python str.format 方法被用于字符串的格式化输出。

    #python str.format 方法被用于字符串的格式化输出. #''.format() print('{0}+{1}={2}'.format(1,2,3)) #1+2=3 可见字符串中大括号内 ...

  4. Python str() 函数

    Python str() 函数  Python 内置函数 描述 str() 函数将对象转化为适于人阅读的形式. 语法 以下是 str() 方法的语法: class str(object='') 参数 ...

  5. python item repr doc format slots doc module class 析构 call 描述符

    1.item # __getitem__ __setitem__ __delitem__ obj['属性']操作触发 class Foo: def __getitem__(self, item): r ...

  6. Python str 与 bytes 类型(Python2/3 对 str 的处理)

    本文均在 Python 3 下测试通过,python 2.x 会略有不同. 1. str/bytes >> s = '123' >> type(s) str >> ...

  7. python str()与repr()

    相同点: 将任意值转为字符串 不同点: str()致力于生成一个对象的可读性好的字符串表示,它的返回结果通常无法用于eval()求值,但很适合用于print语句输出 repr()出来的值是给pytho ...

  8. python - str和repr方法:

    # python 内置__str__()和__repr__()方法: #显示自定制 # 示例1 # a = 123 # print(a.__str__()) # 示例2 class Test(): d ...

  9. Python之str(),repr(),``

    对于对象obj: str()生成的字串是给人看的 repr()生成的字串是给解析器看的 ``与repr()等义. 最直接就是: ------------------- obj=eval(repr(ob ...

随机推荐

  1. ORA-12505

    tomcat 连不上 oracle,报: java.sql.SQLException: Listener refused the connection with the following error ...

  2. 算法问题实战策略 PICNIC

    下面是另一道搜索题目的解答过程题目是<算法问题实战策略>中的一题oj地址是韩国网站 连接比较慢 https://algospot.com/judge/problem/read/PICNIC ...

  3. 《大数据技术应用与原理》第二版-第三章分布式文件系统HDFS

    3.1分布式文件 HDFS默认一个块的大小是64MB,与普通文件不同的是如果一个文件小于数据块的大小,它并不占用整个数据块的存储空间. 主节点又叫名称节点:另一个叫从节点又叫数据节点.名称节点负责文件 ...

  4. Apollo服务端设计原理剖析

    本文摘自于<Spring Cloud微服务 入门 实战与进阶>一书. 1 配置发布后的实时推送设计 配置中心最重要的一个特性就是实时推送了,正因为有这个特性,我们可以依赖配置中心做很多事情 ...

  5. iOS:从头捋一遍VC的生命周期

    一.介绍 UIViewController是iOS开发中的核心控件,没有它那基本上任何功能都无法实现,虽然系统已经做了所有控件的生命维护,但是,了解它的生命周期是如何管理还是非常有必要的.网上有很多教 ...

  6. hyper-v Centos7 网卡配置无效

    环境: Win 10 Hyper-v 安装虚拟机:Centos 7 遇到问题: 网络配置无效,使用命令“ip addr” 网卡没有出现在列表中,显示了一个奇怪的网卡名字如“enp0s010f”,配置文 ...

  7. TCP协议 - 面向连接

    一.TCP特性概览 1.面向连接 TCP是基于连接进行数据交互,通信双方在进行数据交互之前需要建立连接,该连接也只能用在双方之间进行交互.这点不像UDP中的组播和广播,可以在同一组中多个主机交互数据. ...

  8. Xshell的一些使用方法和注意事项

    xshell 本文就是想记录下最近遇到的一些问题,以及一些 xshell 能帮助我们提升效率的方面. xshell 编码问题 我们连接服务器,是通过本地登录到 跳板机,然后通过跳板机登录到 我们的服务 ...

  9. Web前端——JavaScript笔记

    js 数据类型 字符串可以使用''或者是"" 运算符 == 只比较内容 === 比较内容,也比较类型是否一样,两个为true才为true !== 与上面===相反 var a=12 ...

  10. Visual Studio 基础设置

    重置开发环境 菜单栏中选择“工具”/“导入和导出设置”/“重置所有设置” 设置行号 菜单栏中选择“工具”/“选项”/“文本编辑器”/“行号” 全屏显示 菜单栏中选择“视图”/“全屏显示” 为程序设置版 ...