python的repr
『壹』 python str()与repr()区别
The str() function is meant to return representations of values which are fairly
human-readable, while repr() is meant to generate representations which can be read by
the interpreter (or will force a SyntaxError if there is not equivalent syntax).
str是给人看的,repr是给编译器看的,同时eval(repr(obj))还可专以得属到obj。
『贰』 Python里str函数和repr函数有什么区别
这个简单
str是显示给用户用的
repr是给机器用的。
class A(object):
def __str__(self):
print "this is A class"
def __repr__(self):
print "this is repr func"
a = A()
比如print a
调用的是a的__str__方法
而如果你在python解释器里直接敲a后回车,调用的是a.__repr__()方法
『叁』 python str和repr的区别
str与repr区别:
1、python中str函数通常把对象转换成字符串,即生成对象的可读性好的字符串,一般在输出文本时使用,或者用于合成字符串。str的输出对用户比较友好适合print输出。
2、pyton中repr函数将一个对象转成类似源代码的字符串,只用于显示。repr的输出对python友好,适合eval函数得到原来的对象。
3、在类中实现__str__和__repr__方法,就可以得到不同的返回,示例代码:
>>>classtest(object):
def__repr__(self):
return"returntestrepr()string."
def__str__(self):
return"returnteststr()string."
>>>print(str(test()))
returnteststr()string.
>>>print(repr(test()))
returntestrepr()string.
『肆』 Python中,已知一个对象的repr的值,怎么能反向推出那个对象
Python的特色简单 Python是一种代表简单主义思想的语言。阅读一个良好的Python程序就感觉像是在读英语一样,尽管这个英语的要求非常严格!Python的这种伪代码本质是它最大的优点之一。它使你能够专注于解决问题而不是去搞明白语言本身。 易学 就如同你即将看到的一样,Python极其容易上手。前面已经提到了,Python有极其简单的语法。 免费、开源 Python是FLOSS(自由/开放源码软件)之一。简单地说,你可以自由地发布这个软件的拷贝、阅读它的源代码、对它做改动、把它的一部分用于新的自由软件中。FLOSS是基于一个团体分享知识的概念。这是为什么Python如此优秀的原因之一——它是由一群希望看到一个更加优秀的Python的人创造并经常改进着的。 高层语言 当你用Python语言编写程序的时候,你无需考虑诸如如何管理你的程序使用的内存一类的底层细节。 可移植性 由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工作在不同平台上)。如果你小心地避免使用依赖于系统的特性,那么你的所有Python程序无需修改就可以在下述任何平台上面运行。 这些平台包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows CE甚至还有PocketPC! 解释性 这一点需要一些解释。 一个用编译性语言比如C或C++写的程序可以从源文件(即C或C++语言)转换到一个你的计算机使用的语言(二进制代码,即0和1)。这个过程通过编译器和不同的标记、选项完成。当你运行你的程序的时候,连接/转载器软件把你的程序从硬盘复制到内存中并且运行。 而Python语言写的程序不需要编译成二进制代码。你可以直接从源代码 运行 程序。在计算机内部,Python解释器把源代码转换成称为字节码的中间形式,然后再把它翻译成计算机使用的机器语言并运行。事实上,由于你不再需要担心如何编译程序,如何确保连接转载正确的库等等,所有这一切使得使用Python更加简单。由于你只需要把你的Python程序拷贝到另外一台计算机上,它就可以工作了,这也使得你的Python程序更加易于移植。 面向对象 Python即支持面向过程的编程也支持面向对象的编程。在 面向过程 的语言中,程序是由过程或仅仅是可重用代码的函数构建起来的。在 面向对象 的语言中,程序是由数据和功能组合而成的对象构建起来的。与其他主要的语言如C++和Java相比,Python以一种非常强大又简单的方式实现面向对象编程。 可扩展性 如果你需要你的一段关键代码运行得更快或者希望某些算法不公开,你可以把你的部分程序用C或C++编写,然后在你的Python程序中使用它们。 可嵌入性 你可以把Python嵌入你的C/C++程序,从而向你的程序用户提供脚本功能。 丰富的库 Python标准库确实很庞大。它可以帮助你处理各种工作,包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮件、XML、XML-RPC、HTML、WAV文件、密码系统、GUI(图形用户界面)、Tk和其他与系统有关的操作。记住,只要安装了Python,所有这些功能都是可用的。这被称作Python的“功能齐全”理念。 除了标准库以外,还有许多其他高质量的库,如wxPython、Twisted和Python图像库等等。
『伍』 python repr和str有什么区别
函数str() 用于将值转化为适于人阅读的形式,而repr() 转化为供解释器读取的形式
内建函数str()和版repr() (representation,表达,表示)或反引号操作符(`权`)可以方便地以字符串的方式获取对象的内容、类型、数值属性等信息。
str()函数得到的字符串可读性好(故被print调用)
repr()函数得到的字符串通常可以用来重新获得该对象,通常情况下 obj==eval(repr(obj)) 这个等式是成立的。这两个函数接受一个对象作为其参数,返回适当的字符串。
事实上repr()和``做一样的事情,返回一个对象的“官方”字符串表示。其结果绝大多数情况下(不是所有)可以通过求值运算(内建函数eval())重新得到该对象。
str()则不同,它生成一个对象的可读性好的字符串表示,结果通常无法用eval()求值,但适合print输出。
『陆』 Python 中 str 和 repr 的区别
尽管str(),repr()和``运算在特性和功能方面都非常相似,事实上repr()和``做的是完全一样的事情,它们返回的是一个对象的“官方”字符串表示,也就是说绝大多数情况下可以通过求值运算(使用内建函数eval())重新得到该对象。
但str()则有所不同,str()致力于生成一个对象的可读性好的字符串表示,它的返回结果通常无法用于eval()求值,但很适合用于print语句输出。需要再次提醒的是,并不是所有repr()返回的字符串都能够用 eval()内建函数得到原来的对象。 也就是说 repr() 输出对 Python比较友好,而str()的输出对用户比较友好。
虽然如此,很多情况下这三者的输出仍然都是完全一样的。 大家可以看下下面的代码,来进行对比
>>> s = 'Hello, world.'
>>> str(s)
'Hello, world.'
>>> repr(s)
"'Hello, world.'"
>>> str(0.1)
'0.1'
>>> repr(0.1)
'0.10000000000000001'
>>> x = 10 * 3.25
>>> y = 200 * 200
>>> s = 'The value of x is ' + repr(x) + ', and y is ' + repr(y) + '...'
>>> print s
The value of x is 32.5, and y is 40000...
>>> # The repr() of a string adds string quotes and backslashes:
... hello = 'hello, world\n'
>>> hellos = repr(hello)
>>> print hellos
'hello, world\n'
>>> # The argument to repr() may be any Python object:
... repr((x, y, ('spam', 'eggs')))
"(32.5, 40000, ('spam', 'eggs'))"
『柒』 python __repr__的作用
1,尝试生成这样一个字符串,将其传给 eval可重新生成同样的对象 。
2,否则,生成用尖括号包住专的字符串,包含类属型名和额外的信息。
『捌』 菜鸟求大大们解释Python里str函数和repr函数的区别
1、说明:
函数str()用于将值转化为适于人阅读的形式,而repr() 转化为供解释器读取的形式。这是从python官方手册翻译的手册内容。
2、示例:
代码
import datetime
now = datetime.datetime.now()
print(str(now))
print(repr(now))
print(eval(repr(now)))
程序输出:
2016-06-09 10:41:07.388009
datetime.datetime(2016, 6, 9, 10, 41, 7, 388009)
2016-06-09 10:41:07.388009
代码说明:
1)datetime为内置模块,import加载模块。
2)now = datetime.datetime.now() 系统当前时间赋值给time变量。
3)这里就可以看出str和repr输出有区别了。
4)eval函数是把参数当作代码执行,验证repr之后的字符串可被python识别并执行。
3、官方文档:
str(object='') -> str
str(bytes_or_buffer[, encoding[, errors]]) -> str
使用给定对象的新字符串对象。如果编码或错误是指定的,那么对象必须公开数据缓冲区将使用给定的编码和错误处理程序进行解码。否则,返回的对象私有函数__str()__的结果。
repr(obj, /)
返回对象的规范的字符串表示。对于许多对象类型,包括大多数内建,eval(repr(obj)) == obj.
『玖』 在python中int、str、repr分别是什么函数类顺便问下:类是什么请大神指教。
int、str 都是类
repr是函数。
仔细的讲,内容还是比较多,函数和类在培训班可以讲一两节课的。
通俗的讲:
函数就是若干脚本语句的集合,执行这个函数,就执行了这些语句。
类就是多个函数的集合。
实际操作就还需要很多的概念支持,比如实例化对象、参数传递、变量作用域、可变不可变变量操作、返回值,等等等等。
『拾』 python中的repr函数。下面函数为什么错啊
语法错误?我试了,好着,你的编程环境是什么?