> 백엔드 개발 > 파이썬 튜토리얼 > Python에서 객체가 반복 가능한지 어떻게 안정적으로 확인할 수 있습니까?

Python에서 객체가 반복 가능한지 어떻게 안정적으로 확인할 수 있습니까?

Linda Hamilton
풀어 주다: 2024-12-09 01:31:13
원래의
450명이 탐색했습니다.

How Can I Reliably Check if an Object is Iterable in 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')
로그인 후 복사

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿