In Python the interface of an iterable is a subset of the iterator interface. This has the advantage that in many cases they can be treated in the same way. However, there is an
'iterator' if obj is iter(obj) else 'iterable'