私はベクトルクラスを書きましたが、次のようなものを書きたいと思っています
x = Vector([1,2,3])
for i in x:
#do stuff
このようなことを行うために定義できる __ add __ のような特別なメソッドはありますか?
私はベクトルクラスを書きましたが、次のようなものを書きたいと思っています
x = Vector([1,2,3])
for i in x:
#do stuff
このようなことを行うために定義できる __ add __ のような特別なメソッドはありますか?
定義したい__iter__
:
>>> class Vector(object):
... def __init__(self, vec):
... self.data = vec[:]
... def __iter__(self):
... for i in self.data:
... yield i
...
>>> x = Vector([1,2,3])
>>> x
<__main__.Vector object at 0xb728210c>
>>> for i in x:
... print i
...
1
2
3
またはこの場合、あなたは逃げることができます
>>> class Vector(object):
... def __init__(self, vec):
... self.data = vec[:]
... def __iter__(self):
... return iter(self.data)
...
>>> Vector([1,2,3])
<__main__.Vector object at 0x914722c>
>>> list(Vector([1,2,3]))
[1, 2, 3]
>>>
等。