En Python, comment puis-je déterminer si un objet est itératif?

Est-il une méthode comme isiterable? La seule solution que j'ai trouvé pour l'instant est d'appeler

hasattr(myObj, '__iter__')

Mais je ne suis pas sûr de la façon infaillible de ce qui est.

  • __getitem__ est également suffisante pour en faire un objet itérable
  • FWIW: iter(myObj) réussit si isinstance(myObj, dict), donc si vous êtes à la recherche à un myObj que pourrait être une séquence de dicts ou un seul dict, vous allez réussir dans les deux cas. Une subtilité qui est important si vous voulez savoir ce qu'est une séquence et ce qui ne l'est pas. (en Python 2)
  • __getitem__ est également suffisante pour en faire un objet itérable ... si elle commence à l'index zéro.
InformationsquelleAutor willem | 2009-12-23