ホームページ >バックエンド開発 >Python チュートリアル >Python でオブジェクトが反復可能かどうかを確実に確認するにはどうすればよいですか?
Python でのオブジェクトの反復可能性の決定
一連の要素の反復処理は、Python の基本的な操作です。オブジェクトが反復をサポートしているかどうかを判断するには、isiterable のような単純なメソッドが存在するかどうか疑問に思うかもしれません。
hasattr(myObj, '__iter__')
質問 hasattr(myObj, '__iter__') は、 __iter__ メソッドが存在するかどうかをチェックします。オブジェクト。ほとんどのシーケンス型では機能しますが、文字列を処理する場合、Python 2 では不十分です。
Iter 組み込み関数
より確実なアプローチは、iter を使用することです。組み込み関数。オブジェクトの __iter__ メソッド、または文字列の場合は __getitem__ メソッドの呼び出しを試行し、より広範囲のイテラブルに適したものにします。
try: some_object_iterator = iter(some_object) except TypeError as te: print(some_object, 'is not iterable')
ダック タイピング
もう 1 つの Python 的アプローチは、ダック タイピングを採用することです。これには、オブジェクトが反復可能であると想定し、そうでない場合は例外を処理することが含まれます。 EAFP (Easier to Ask Forgiveness than Permission) スタイルは、これによく使用されます。
try: _ = (e for e in my_object) except TypeError: print(my_object, 'is not iterable')
コレクション モジュール
Python コレクション モジュールは、チェックするための抽象基本クラスを提供します。クラスまたはインスタンスの反復可能性のため。ただし、これらのクラスはすべてのケース、特に __getitem__ メソッドによる反復可能ケースをカバーしているわけではありません。
from collections.abc import Iterable if isinstance(e, Iterable): # e is iterable
以上がPython でオブジェクトが反復可能かどうかを確実に確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。