[英]How to delegate `__iter__` method in Python
I would like to delegate __iter__
method for an iterable container.我想为可迭代容器委托__iter__
方法。
class DelegateIterator:
def __init__(self, container):
attribute = "__iter__"
method = getattr(container, attribute)
setattr(self, attribute, method)
d = DelegateIterator([1,2,3])
for i in d.__iter__(): # this is successful
print(i)
for i in d: # raise error
print(i)
The output is output 是
1
2
3
Traceback (most recent call last):
File "test.py", line 10, in <module>
for i in d:
TypeError: 'DelegateIterator' object is not iterable
Please let me know how to delegate __iter__
method.请让我知道如何委托__iter__
方法。
Why overcomplicate things?为什么要把事情复杂化?
class DelegateIterator:
def __init__(self, container):
self.container = container
def __iter__(self):
return iter(self.container)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.