【发布时间】:2019-02-06 21:54:14
【问题描述】:
class Data:
def __init__(self, dictionary):
self.data = dictionary
def __iter__(self):
for key,val in self.data.items():
yield (key, val)
def iter_on_self(self):
for i in self:
yield i
我知道上面的iter_on_self 是多余的,但我想知道for i in self: #do something 是否被认为是一种不好的做法。如果这是一种不好的做法,并且我需要从同一个类中的另一个方法对 self 进行循环,那么我将如何实现它。
【问题讨论】:
-
__iter__中的循环将引发ValueError: Not enough arguments to unpack。循环遍历self.data只会给你密钥,除非你说for k, v in self.data.items() -
我的错,我的意思是
for key,val in self.data.items()。