Why?
Sympy does not try to iterate when the object is NotIterable. If it has __iter__ but iter throws it will only sometimes think its not iterable.
NotIterable
__iter__