Iterating through a class python
我有一个向量类需要迭代。类包含一个列表变量。我需要迭代整个类。
我不知道该怎么做。我需要使用__iter__,它建议我使用yield,这是我想要的结果:
1 2
| [x*2 for x in Vector([3,3.25,"foo"])]
[6, 6.5, 'foofoo'] |
ITER应该返回一个可以迭代向量元素的对象。我该怎么做呢?我以前从未用过__iter__。
- 我可以建议您不要用参数名覆盖默认类对象吗?不是你的问题,但可能不会帮助任何人
- 另外,第5行中的位或操作是什么?没什么好的,我打赌
- 同使用|表示逻辑或。python有关键字or
- 不知道,新的python将替换为或
- 这里不重要,因为Booleans的值可以是0或1。
- 注意,isinstance(obj,long) or isinstance(obj,int)可以替换为:isinstance(obj, (long, int))。另外,您将l设置为类变量(第2行),这很糟糕。
基本上:
1 2 3
| def __iter__(self):
for elt in self.l:
yield elt |