On 2006-09-01, Tal Einat <[EMAIL PROTECTED]> wrote:
> Tim Chase wrote:
>> I'm not sure if '__iter__' is the right thing to be looking
>> for, but it seems to work at least for lists, sets,
>> dictionarys (via their keys), etc.  I would use it because at
>> least then you know you can iterate over it
>
> AFAIK and as seen throughout posts on c.l.py, the best way to
> check if something is iterable is:
>
> try:
>     iter(obj)
> except TypeError:
>     <obj is not iterable>
> else:
>     <obj is iterable>

That confounds me.  Of course, I'm coming from a C++, where you
never want to throw an exception in a common case, hence the name
'exception'. The Python FAQ does say that raising and catching an
exception is an expensive operation. I see that type-checking is
good to avoid, but type-checking must be better than "abusing"
exceptions in this way. Is the above really a popular idiom?

If so, I guess I'll get used to it.

-- 
Neil Cerutti
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to