Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 何时调用_repr__;()?_Python - Fatal编程技术网

Python 何时调用_repr__;()?

Python 何时调用_repr__;()?,python,Python,print OBJECT调用OBJECT.\uuu str\uuu(),那么何时调用OBJECT.\uuuu repr\uu()?我看到,print OBJECT调用OBJECT.\uuuu repr\uuuu()当OBJECT.\uu str\uuu()不存在时,但我希望这不是调用\uu repr\uu()的唯一方法 召唤 \uuuu repr\uuuuu的目的是提供对象的“形式”表示,该表示应该是一个表达式,可以评估以创建对象。就是 obj == eval(repr(obj)) 应该但并不

print OBJECT
调用
OBJECT.\uuu str\uuu()
,那么何时调用
OBJECT.\uuuu repr\uu()
?我看到,
print OBJECT
调用
OBJECT.\uuuu repr\uuuu()
OBJECT.\uu str\uuu()
不存在时,但我希望这不是调用
\uu repr\uu()的唯一方法

召唤

\uuuu repr\uuuuu
的目的是提供对象的“形式”表示,该表示应该是一个表达式,可以
评估
以创建对象。就是

obj == eval(repr(obj))
应该但并不总是在实践中产生
True

我在评论中被问到一个when
obj!=eval(repr(obj))

这里还有一个:

>>> con = sqlite3.connect(':memory:')
>>> repr(con)
'<sqlite3.Connection object at 0xb773b520>'
>>> 
con=sqlite3.connect(“:内存:”) >>>报告员(con) '' >>>
repr(obj)
调用
obj.\uuu repr\uu

repr(obj)

这是为了清楚地描述对象,特别是为了调试目的

在Python2.x中,
`obj`
最终将调用
obj.\uuu repr\uuu()
。它是
repr()

的简写,不仅在使用
repr()
时会调用
\uuuu repr()
,而且在以下情况下也会调用它:

  • 在shell中键入
    obj
    ,然后按enter键
  • 您曾经在字典/元组/列表中打印过对象。例如:
    打印[u'test']
    不打印
    ['test']

  • 为什么obj==eval(repr(obj))不总是为真?您能举个例子吗?对于一个复杂的对象,例如一个文件,它不一定会返回True。@inspectorG4dget:obj==eval(type('myclass',(),{})),非常感谢@AaronMcSmooth,@Avi,@MikeAxiak对此的解释。++到all@S.Lott谢谢你指出我的标记错误,现在已经修复了。我只是不知道你指的是什么指导方针。谢谢你!
    class BrokenRepr(object):
        def __repr__(self):
            return "not likely"
    
    >>> con = sqlite3.connect(':memory:')
    >>> repr(con)
    '<sqlite3.Connection object at 0xb773b520>'
    >>>