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的更多相关文章
-
通俗易懂方式解说Python中repr(变量)和str(变量)函数的区别
老猿在<Python中repr(变量)和str(变量)的返回值有什么区别和联系>介绍了repr(变量)和str(变量)的区别和联系(对应特殊方法__repr__和__str__),但老猿刚 ...
-
Python中repr(变量)和str(变量)的返回值有什么区别和联系
Python中repr(变量)和str(变量)都返回一个描述对象的字符串,二者有关联又有不同.由于Python3.0后都是新式类,我们的分析也是基于新式类进行的.基于object派生的新式类中二者之间 ...
-
#python str.format 方法被用于字符串的格式化输出。
#python str.format 方法被用于字符串的格式化输出. #''.format() print('{0}+{1}={2}'.format(1,2,3)) #1+2=3 可见字符串中大括号内 ...
-
Python str() 函数
Python str() 函数 Python 内置函数 描述 str() 函数将对象转化为适于人阅读的形式. 语法 以下是 str() 方法的语法: class str(object='') 参数 ...
-
python item repr doc format slots doc module class 析构 call 描述符
1.item # __getitem__ __setitem__ __delitem__ obj['属性']操作触发 class Foo: def __getitem__(self, item): r ...
-
Python str 与 bytes 类型(Python2/3 对 str 的处理)
本文均在 Python 3 下测试通过,python 2.x 会略有不同. 1. str/bytes >> s = '123' >> type(s) str >> ...
-
python str()与repr()
相同点: 将任意值转为字符串 不同点: str()致力于生成一个对象的可读性好的字符串表示,它的返回结果通常无法用于eval()求值,但很适合用于print语句输出 repr()出来的值是给pytho ...
-
python - str和repr方法:
# python 内置__str__()和__repr__()方法: #显示自定制 # 示例1 # a = 123 # print(a.__str__()) # 示例2 class Test(): d ...
-
Python之str(),repr(),``
对于对象obj: str()生成的字串是给人看的 repr()生成的字串是给解析器看的 ``与repr()等义. 最直接就是: ------------------- obj=eval(repr(ob ...
随机推荐
-
ocp 1Z0-051 23-70题解析
23. Examine thestructure proposed for the TRANSACTIONS table: name Null Type TRANS_ID NOT NULLNUMBER ...
-
Log4Qt使用(三)在DailyRollingFileAppender类中增加属性mMaxBackupIndex
在Log4Qt中存在一个比较大的问题,当使用 DailyRollingFileAppender对日志进行输出时,会无限输出文件,也就是说,当系统运行很久时,日志文件有可能很大,大到无法想象.因此,很多 ...
-
(转)[置顶] Android APK反编译就这么简单 详解(附图) .
在学习Android开发的过程你,你往往会去借鉴别人的应用是怎么开发的,那些漂亮的动画和精致的布局可能会让你爱不释手,作为一个开发者,你可能会很想知道这些效果界面是怎么去实现的,这时,你便可以对改应用 ...
-
ip锁死怎么设置ip地址
单击电脑网络连接图标,打开网络和共享中心 点击本地连接 点击详细信息,即可看到IP地址.子网掩码.默认网关.DNS服务器信息 再点击本地连接状态下的属性 找到Internet 协议版本 ...
-
【XSY2887】【GDOI2018】小学生图论题 分治FFT 多项式exp
题目描述 在一个 \(n\) 个点的有向图中,编号从 \(1\) 到 \(n\),任意两个点之间都有且仅有一条有向边.现在已知一些单向的简单路径(路径上任意两点各不相同),例如 \(2\to 4\to ...
-
Bootstrap常用单词组
布局容器 .container 固定宽度 .container-fluid 全屏 .row 行 .col-lg- 大屏幕 .col-md- 中屏幕 变量 @grid-columns: 12 列数 @g ...
-
论文笔记:ATOM: Accurate Tracking by Overlap Maximization
ATOM: Accurate Tracking by Overlap Maximization 2019-03-12 23:48:42 Paper:https://arxiv.org/pdf/18 ...
-
4.0-uC/OS-III目录结构
本文章都是基于学习野火STMF4系列的开发板的学习做的,大部分都是开发手册的内容,做笔记用,具体请参考野火官方的开发手册. 1. uC/OS-III 文件结构 ①配置文件,通过定义这些文件里宏的值可以 ...
-
【Anaconda】:科学计算的Python发行版
[背景] Python易用,但包管理和Python不同版本的问题比较头疼,特别是当你使用Windows的时候.为了解决这些问题,有不少发行版的Python,比如WinPython.Anaconda等, ...
-
解决Ajax跨域问题:Origin http://127.0.0.1:8080 is not allowed by Access-Control-Allow-Origin.
在服务端上设置一下header,如response.header("Access-Control-Allow-Origin","*");