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')
Duck Typing
또 다른 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!