"Nick Vatamaniuc" <[EMAIL PROTECTED]> wrote in message
news:[EMAIL PROTECTED]
> Tim,
>
> An object is iterable if it implements the iterator protocol
There are presently two iterator protocols. The old one will be likely be
dropped in 3.0 (currently being discussed).
>. A good
> enough check to see if it does is to check for the presense of the
> __iter__() method. The way to do it is:
> hasattr(object,'__iter__')
Sorry, this check for the newer and nicer protocol but not the older one.
>>> hasattr('abc', '__iter__')
False
This may change in 2.6. The defacto *version-independent* way to determine
iterability is to call iter(ob). If it returns an iterator, you can
iterate; if it raises TypeError, you cannot. Any it should be patched as
necessary by the developers to continue doing the right thing in future
versions.
Terry Jan Reedy
--
http://mail.python.org/mailman/listinfo/python-list