如何在类内正确使用len()函数?
如何在类内正确使用len()函数?
这个问题已经有了答案:
我正在尝试弄清楚在Python类中使用len()
是如何工作的。运行此代码会导致显示错误,即使我添加了一个__len__
重载并使用了@property
,遵循了互联网上的各种建议。
class Routes: def __init__(self): self._route_list = list() def __len__(self): return len(self._route_list) @property def route_list(self): return self._route_list @classmethod def check_list(self): if not self.route_list or len(self.route_list) == 0: print('ERROR: no items to print!') routes = Routes() routes.check_list()
TypeError: object of type 'property' has no len()
admin 更改状态以发布 2023年5月24日
class Routes: def __init__(self): self._route_list = list() def __len__(self): return len(self._route_list) def add_route(self): self._route_list.append("route") routes = Routes() print(len(routes)) # 0 routes.add_route() print(len(routes)) # 1
当你重载len时,你就是用该对象作为参数来重载len的调用。当你重载任何其他的那些类型的方法时也是一样的。