__repr__应该返回字节还是unicode?

Hat*_*sut 5 python unicode repr python-2.7 python-3.x

在Python 3和Python 2中,__repr__应该返回字节还是unicode?参考和报价是理想的.

这里有一些关于2-3兼容性的信息,但我没有看到答案.

mgi*_*son 8

类型是str(对于python2.x和python3.x):

>>> type(repr(object()))
<class 'str'>
Run Code Online (Sandbox Code Playgroud)

必须是这种情况,因为如果前者不存在则__str__默认调用__repr__,但__str__ 必须返回a str.

对于那些不知道的人,在python3.x中,str是表示unicode的类型.在python2.x中,str是表示字节的类型.

  • `str`是Python3中的unicode和Python2中的字节.我相信OP正在寻找这些细节 (5认同)
  • 它可能措辞得更好.两种类型都是`str`,但它们意味着完全不同的东西......! (4认同)
  • @mgilson OP清楚地询问repr是否返回带有字节或unicode表示的对象,并且显然想知道Py2与Py3的区别.在Py3中,`str`是一个unicode对象. (3认同)