<div>You can using metaclasses (untested):</div><div><br></div><div>>>>class MyMetaClass(type):</div><div>>>>    def __iter__(self):</div><div>>>>        return [1, 2, 3, 4]</div><div><br></div><div>

>>>class MyClass(object):</div><div>>>>    __metaclass__ = MyMetaClass</div><div><br></div><div>>>>for value in MyClass:</div><div>>>>    print value</div><div>1</div><div>2</div><div>
3</div>
<div>4</div><br clear="all">Chris<br>
<br><br><div class="gmail_quote">On Tue, Aug 9, 2011 at 2:43 PM, Gelonida N <span dir="ltr"><<a href="mailto:gelonida@gmail.com">gelonida@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

Hi,<br>
<br>
I am just curious. There  is no real use case:<br>
<br>
If I have a class and I want that its instances are iterable I can just<br>
add a class metohod named __iter__()<br>
<br>
<br>
example:<br>
<br>
class MyClass(object):<br>
        def __iter__(self):<br>
                for val in range(10):<br>
                        yield val<br>
<br>
<br>
this allows me to do:<br>
myobj = MyClass()<br>
for val in myobj:<br>
        print val<br>
<br>
<br>
Now I wondered whether there is any way to  implement a class such, that<br>
I can write<br>
<br>
<br>
for val in MyClass:<br>
        print val<br>
<br>
I know I can implement  a classmethod (e.g myclassmethod() ) and write:<br>
<br>
for val in MyClass.myclassmethod():<br>
        print val<br>
<br>
but I wondered whether classed can be made iterable<br>
<br>
Thanks in advance for your answers.<br>
<font color="#888888"><br>
--<br>
<a href="http://mail.python.org/mailman/listinfo/python-list" target="_blank">http://mail.python.org/mailman/listinfo/python-list</a><br>
</font></blockquote></div><br>