当前位置: 首页 > 面试题库 >

了解Python中的repr()函数

濮阳唯
2023-03-14
问题内容

repr():对象的可评估字符串表示形式(可以“ eval()”它,这意味着它是评估为Python对象的字符串表示形式)

换一种说法:

>>> x = 'foo'
>>> repr(x)
"'foo'"

问题:

  1. 为什么我得到双引号repr(x)?(这样做的时候我不懂str(x)
  2. 为什么我得到'foo'时却得到eval("'foo'")而不是x是对象?

问题答案:
>>> x = 'foo'
>>> x
'foo'

因此,名称x将附加到'foo'字符串。例如repr(x),当你致电时,解释器放'foo'而不是,x然后致电repr('foo')

>>> repr(x)
"'foo'"
>>> x.__repr__()
"'foo'"

repr实际调用一个魔术方法__repr__x,这给串包含该值的表示'foo'分配给x。因此,它会'foo'在字符串”“中返回结果”'foo'"。的想法repr是给出一个包含一系列符号的字符串,我们可以在解释器中键入该符号并获得与作为参数发送给的相同值repr。

>>> eval("'foo'")
'foo'

当我们调用时eval("'foo'"),它与我们'foo'在解释器中键入的相同。就像我们直接”“在解释器中键入外部字符串的内容一样。

>>> eval('foo')

Traceback (most recent call last):
  File "<pyshell#5>", line 1, in <module>
    eval('foo')
  File "<string>", line 1, in <module>
NameError: name 'foo' is not defined

如果调用eval('foo'),则与foo在解释器中键入的相同。但是没有foo可用的变量,并且引发了异常。

>>> str(x)
'foo'
>>> x.__str__()
'foo'
>>> 

str只是对象的字符串表示形式(请记住,x变量是指'foo'),因此此函数返回字符串。

>>> str(5)
'5'

整数的字符串表示形式5是'5'

>>> str('foo')
'foo'

并且字符串的字符串表示形式'foo'是相同的字符串'foo'



 类似资料:
  • Python 内置函数 描述 repr() 函数将对象转化为供解释器读取的形式。 语法 以下是 repr() 方法的语法: repr(object) 参数 object -- 对象。 返回值 返回一个对象的 string 格式。 实例 以下展示了使用 repr() 方法的实例:>>>s = 'RUNOOB' >>> repr(s) "'RUNOOB'" >>> dict = {'runoob'

  • 问题内容: 如果我有一个带字符( )的字符串,则此字符串的函数将返回。 有没有办法进行反向操作:如果我有string (带字符 ),我需要获得string 。 问题答案: 我认为您正在寻找的是:

  • 问题内容: python 2.7.5和函数之间的区别是什么? python.org上的说明: 该功能是指以返回其是相当值的表示 人类可读 ,而意在产生可以表示 由解释器读取 (或将强制如果没有相当的语法) 但这对我来说还不清楚。 一些例子: 所以我想知道以下 什么时候应该使用?什么时候应该使用? 在哪种情况下我可以使用它们中的任何一个? 做什么不能做? 做什么不能做? 问题答案: 我什么时候应该使

  • repr函数用来取得对象的规范字符串表示。反引号(也称转换符)可以完成相同的功能。注意,在大多数时候有eval(repr(object)) == object。 >>> i = [] >>> i.append('item') >>> `i` "['item']" >>> repr(i) "['item']" 基本上,repr函数和反引号用来获取对象的可打印的表示形式。你可以通过定义类的__repr

  • 问题内容: 我只看到了在类定义中设置方法的示例。是否可以在其定义中或定义它们后更改for函数? 我尝试没有成功… 问题答案: 是的,如果您愿意放弃该功能实际上是一个功能。 首先,为我们的新类型定义一个类: 添加装饰器功能: 现在我们可以定义repr和函数了: 现在生产

  • 问题内容: 将函数应用于每个iterable并返回结果列表。如果传递了其他可迭代的参数,则函数必须采用那么多参数,并且并行地将其应用于所有可迭代的项目。 如果一个可迭代项短于另一个可迭代项,则假定它扩展为None。 如果为,则假定为身份函数;如果有多个参数,则返回一个由元组组成的列表,其中包含所有可迭代对象中的对应项(一种转置操作)。 可迭代参数可以是序列或任何可迭代对象。结果总是一个列表。 这在