当使用repr(list(self))时,xlwings类应用程序的方法如何__repr__



我试图创建一个新类,我在模块xlwings中找到了一个类似的类,但我无法理解方法repr在调用self("repr(list(self(((时是如何工作的。类如何知道返回带有apss的列表?

代码为:

class Apps(object):    
def __init__(self, impl):
self.impl = impl
def __call__(self, i):
return self[i-1]
def __repr__(self):
return '{}({})'.format(
self.__class__.__name__,
repr(list(self))
)
def __getitem__(self, item):
return App(impl=self.impl[item])
def __len__(self):
return len(self.impl)
def __iter__(self):
for app in self.impl:
yield App(impl=app)

list调用__iter__因此它在 App 对象列表上调用repr,这些对象将为每个项目调用App.__repr__

最新更新