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 + ')'这是定义链接(i.e.linked列表).And的代码,__repr __函数的输出类似于
>>> s = Link(5,Link(6))
>>> s # Displays the contents of repr(s)
Link(5, Link(6))但是我不明白为什么__repr__函数可以在它自己中使用repr(self.first),我认为这会导致不有限的循环。
我想知道:repr函数是否是Python中内置的函数,即使我正在定义__repr__函数?
回答: repr()是一个占线函数。
发布于 2022-08-18 11:51:09
def __repr__(self):
if self.rest is not Link.empty:
rest_repr = ', ' + repr(self.rest)看看这段代码,你注意到了什么?
确切地说:您使用的是repr(self.rest),这相当于self.rest.__repr__()。
换句话说,您不是对repr的实例调用Link,而是对它的一个属性调用它。所以你不会把Link.__repr__召唤到它的身体里,别担心。
https://stackoverflow.com/questions/73402542
复制相似问题