repr() VS str()区别

  repr是对python解释器友好的,就是会以合法的python表达式的形式来表示值,返回一个可以用来表示对象的可打印字符串。

  官方解释:

  Python 手册:
  Return a string containing a printable representation of an object.

  返回一个用来表示可打印对象的字符串。

  This is the same value yielded by conversions (reverse quotes).

  这是一个通过转换产生的字符串值(并且这个值是引用双引号的)。

   It is sometimes useful to be able to access this operation as an ordinary function.

  有时它很有用,能够作为一个普通函数来操作。

  For many types, this function makes an attempt to return a string that would yield an object with the same value when passed to eval(),

  对于很多类型,这个函数首先会尝试返回一个字符串值,并且把这个字符串值传给eval()方法时它将产生带有同样值的python对象(也就是说,obj=eval(repr(obj)))。  

  otherwise the representation is a string enclosed in angle brackets that contains the name of the type of the object together with additional information often including the name and address of the object.

  否则生成用尖括号包住的字符串,包含这个对象的类型名和一些额外的信息(比如这个对象的地址)。

  A class can control what this function returns for its instances by defining a repr() method.

  一个类可以通过定义repr()方法,来控制这个类实例通过这个函数的返回值。(这句翻译有点晦涩,我的了解就是,就相当于java里面定义的tostring()方法,一个类的实例对象,如果想转化为字符串形式,这个类就必须定义或者说重写repr()方法)

  (特别指明,别人的解释是:一个类(class)可以通过 __repr__() 成员来控制repr()函数作用在其实例上时的行为。由于刚刚学习python,对于__repr__()我还不是很清楚,后面需要进一步理解

  

  str是对用户友好的,返回一个可以用来表示对象的可打印的友好的字符串

  Python 手册:
  Return a string containing a nicely printable representation of an object.

  返回一个表示对象的可打印的友好的字符串值。

  For strings, this returns the string itself.

  对于字符串类型,通过这个函数返回它本身。

  The difference withrepr(object) is that str(object) does not always attempt to return a string that is acceptable to eval();

  不同于repr()函数的是这个函数经常不会尝试返回一个可以传递给eval()函数的字符串(也就是会报错:NameError: name ‘xxx‘ is not defined,不是标准字符串形式,eval函数会把它当成未定义变量)。

  its goal is to return a printable string.

  这个函数的目标是返回可以答应的字符串,就是对用户看着比较友好的。

  If no argument is given, returns the empty string, .

  如果没有给这个函数传入参数的话,返回一个空字符串。

  

>>> repr(100)
‘100‘
>>> str(100)
‘100‘
>>> repr("aaa")
"‘aaa‘"
>>> str("aaaa")
‘aaaa‘
>>> print(repr(1000))
1000
>>> print(str(1000))
1000
>>> print(repr("bbbbb"))
‘bbbbb‘
>>> print(str("bbbb"))
bbbb

  从上面执行的结果,可以看出来,这两个函数返回的本身都是字符串。再进行打印时可以看出,str返回的是对用户更友好的字符串,但是repr返回的呢则依旧是符合python表达式规则的字符串表达形式。

=========================未完待续....

时间: 2024-11-10 14:20:07

repr() VS str()区别的相关文章

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

Python中str()与repr()函数的区别 from:https://www.jianshu.com/p/2a41315ca47e 在 Python 中要将某一类型的变量或者常量转换为字符串对象通常有两种方法,即 str()或者 repr() . >>> a = 10 >>> type(str(a)) <class 'str'> >>> type(repr(a)) <class 'str'> 但是这二者之间有什么区别呢?因

repr和str的区别

repr和str都用于输出对象的字符串表示,只不过,repr会将对象直接转为字符串,而str则会将对象转为字符型. 例如: >> repr('abc') "'abc'" >> str('abc') 'abc' >> repr(1000L) '1000L' >> str(1000L) '1000' 用repr生成的字符串可以用eval变回原对象. 原文地址:https://www.cnblogs.com/00986014w/p/845147

repr() 和 str() 函数

Python 有办法将任意值转为字符串:将它传入repr() 或str() 函数. 函数str() 用于将值转化为适于人阅读的形式,而repr() 转化为供解释器读取的形式 (如果没有等价的语法,则会发生SyntaxError 异常) 某对象没有适于人阅读的解释形式的话, str() 会返回与repr() 等同的值.很多类型,诸如数值或链表.字典这样的结构,针对各函数都有着统一的解读方式. 字符串和浮点数,有着独特的解读方式. >>> s = 'Hello, world.' >&g

Python中str()与repr()函数的区别

在 Python 中要将某一类型的变量或者常量转换为字符串对象通常有两种方法,即str()或者 repr() . >>> a = 10 >>> type(str(a)) <class 'str'> >>> type(repr(a)) <class 'str'> 但是这二者之间有什么区别呢?因为提供两个功能完全相同的内建函数是没有意义的.先看一个例子. >>> print(str('123')) 123 >

python中的str和repr函数的区别

看了一些网上的解释,最主流的解释是“str是给人看的,repr是给机器看的”,如果已经理解了的,这句话是对的,但是是有问题的,对于没懂的,这句话是无法理解的. 我来尝试解释一下.先直译一下官方文档: repr(object) Return a string containing a printable representation of an object. For many types, this function makes an attempt to return a string tha

Python3 学习第五弹:类与面向对象

对于面向对象总是要提到,万物皆对象.好似博大精深的感觉. 接下来一起看看python的面向对象的例子 创建一个对象 class Person: type = 'person' def __init__(self, name = 'Noname'): self.name = name def hello(self): print("hello, I'm " + self.name) >>> Mike = Person('Mike') >>> Mike.

python yaml 文件解析及str、repr函数的说明

记录说明 yaml 文件解析的方法及str.repr函数的区别 1. yaml 文件解析 config.yml site_name: AJPy pages: - Introduction: index.md - AJP overview: ajp.md theme: readthedocs code: 中文 解析yaml 文件 import yaml import os class OperateYaml(object): """ 操作yaml 文件 ""

PYTHON编码处理-str与Unicode的区别

一篇关于str和Unicode的好文章 整理下python编码相关的内容 注意: 以下讨论为Python2.x版本, Py3k的待尝试 开始 用python处理中文时,读取文件或消息,http参数等等 一运行,发现乱码(字符串处理,读写文件,print) 然后,大多数人的做法是,调用encode/decode进行调试,并没有明确思考为何出现乱码 所以调试时最常出现的错误 错误1 Traceback (most recent call last): File "<stdin>"

python - str和repr方法:

# python 内置__str__()和__repr__()方法: #显示自定制 # 示例1 # a = 123 # print(a.__str__()) # 示例2 class Test(): def __init__(self,name,sex): self.name = name self.sex = sex # def __str__(self): # return "这是str 显示的 人名:%s 性别:%s"%(self.name,self.sex) def __repr