为什么__repr__函数在定义类时可以使用repr()?(Python)

6rqinv9w  于 2023-01-16  发布在  Python
关注(0)|答案(1)|浏览(135)
class Link:

    def __repr__(self):
        if self.rest is not Link.empty:
            rest_repr = ', ' + repr(self.rest)
        else:
            rest_repr = ''
        return 'Link(' + repr(self.first) + rest_repr + ')'

我想知道:即使我定义了__repr__函数,repr函数在Python中还是一个内置函数吗?
答:repr()是一个内置函数,我们可以在__repr__函数中使用repr()

vptzau2j

vptzau2j1#

def __repr__(self):
        if self.rest is not Link.empty:
            rest_repr = ', ' + repr(self.rest)

看看这段代码,你注意到了什么?
完全正确:您使用的是repr(self.rest),它等效于self.rest.__repr__()
换句话说,你不是在Link的一个示例上调用repr,而是在它的一个属性上,所以你不是在它的主体中调用Link.__repr__,不用担心。

相关问题