En Wed, 19 Dec 2007 06:28:03 -0300, MarkE <[EMAIL PROTECTED]> escribi�:
>> Is there a short Pythonic way to determine whether an object is >> iterable (iteratable ??) that I haven't thought of (getattr(obj, >> '__iter__') ?). Would operator.isIterable() be at all a useful >> addition ? Yes, I think the only way is to try iter(obj) and see if it succeeds (that's basically the same as what you do with getattr, but actually creates the iterator and checks that it's of the right type). > And here I probably meant container (although the url says sequence > when the article meant container, bit like me): > http://docs.python.org/ref/sequence-types.html > "Containers usually are sequences (such as lists or tuples) or > mappings (like dictionaries), but can represent other containers as > well" > > So same question, but perhaps "isContainer()" rather than > "isIterable()" "container" is too generic. Perhaps you can look if it has a __len__ attribute. But anyone could implement a linked list (the common interfase don't fit well with those sequence/mapping methods) and would be hard to deduce whether it is a container or not without further knowledge about it. -- Gabriel Genellina -- http://mail.python.org/mailman/listinfo/python-list