AnV*_*AnV 28 python string repr python-2.7
python 2.7.5 str()和repr()函数有什么区别?
python.org上的说明:
该
str()函数用于返回值相当于人类可读的值的表示,同时repr()用于生成可由解释器读取的表示(或者SyntaxError如果没有等效语法则强制执行)
但这对我来说并不清楚.
一些例子:
>>> s = 'Hello, world.'
>>> str(s)
'Hello, world.'
>>> repr(s)
"'Hello, world.'" # repr is giving an extra double quotes
>>> str(1.0/7.0)
'0.142857142857'
>>> repr(1.0/7.0)
'0.14285714285714285' # repr is giving value with more precision
Run Code Online (Sandbox Code Playgroud)
所以我想知道以下内容
str()应该何时使用,何时使用repr()?str()做哪些repr()不可以?repr()做哪些str()不可以?aba*_*ert 30
我何时应该使用str()以及何时应该使用repr()?
str()在为最终用户创建输出时几乎总是使用.
repr()主要用于调试和探索.例如,如果您怀疑字符串中包含非打印字符,或者浮点数有较小的舍入错误,repr()则会显示给您; str()不得.
repr()也可用于生成文字以粘贴到源代码中.它也可以用于持久化(带ast.literal_eval或eval),但这很少是一个好主意 - 如果你想要可编辑的持久化值,像JSON或YAML更好,如果你不打算编辑它们,使用pickle .
2.在哪些情况下我可以使用其中任何一种?
好了,你可以在几乎任何地方使用它们.你不应该通常使用它们作为上述除.
3.什么不能
str()做repr()?
为最终用户消费提供输出 - 并非总是如此(例如,str(['spam','eggs'))可能不是你想要放在GUI中的任何东西,但更多的是repr().
什么不能
repr()做str()什么呢?
为您提供对调试有用的输出 - 再次,并非总是(用户创建的类的实例的默认值很少有用),但只要有可能.
有时候会给你输出有效的Python文字或其他表达式 - 但除了交互式探索之外,你很少依赖它.
| 归档时间: |
|
| 查看次数: |
46530 次 |
| 最近记录: |