Python: repr与反引号

19 投票
2 回答
11857 浏览
提问于 2025-04-17 02:43

在Python中,repr和反引号`(在数字1的左边)之间有什么区别吗?

为了演示:

class A(object):
    def __repr__(self):
        return 'repr A'
    def __str__(self):
        return 'str A'


>>> a = A()

>>> repr(a)
#'repr A'

>>> `a`
#'repr A'

>>> str(a)
#'str A'

反引号只是调用了repr吗?它只是为了方便吗?在速度上有什么显著的区别吗?

谢谢!

2 个回答

9

根据 python.org 上关于 repr 的说明:

这个值是通过转换(反引号)得到的。

需要注意的是,反引号这种方法目前被语言设计者认为是个不好的做法,并且 在 Python 3 中被移除了

29

它们是repr的别名,效果是完全一样的。

不过,这些别名已经被弃用了,并且在Python 3中被移除了。不要使用它们,直接用repr就可以了。

撰写回答