방법을 결정할지 여부 I 객체가 일련의 여부를 확인하는 이 방법을 생각 할 수 있습니다객체가 순서
hasattr(object, '__iter__')
.iter(object)
을 호출하면TypeError
이 발생하는지 여부.
이 가장 파이썬이므로 내가 추가 (더 추한 생각하지만, 당신이 TypeError
잡은 일단 내가 예외를 발생, 두 번째 관용구를 사용하십시오 허가에게 보다는 용서 요청 객체가 시퀀스가 아님을 확인하면 바람직하지 않은 "이중 예외"스택 추적이 발생합니다.
궁극적으로 개체가 __iter__
메서드를 정의하여 개체가 시퀀스인지 여부를 결정할 수 있는지 확인하고 있습니까? 예를 들어, 이전 버전의 Python에서는 str
이 __iter__
메서드를 정의하지 않았고 __iter__
을 정의하지 않고 __getitem__
을 정의하고 사용하는 객체도 있습니다. 또는 정의 중입니다 __iter__
시퀀스의 계약?
내가 온라인에서 찾을 수있는 것 중에 [이 토론] (http://bytes.com/topic/python/answers/514838-how-test-if-object-sequence-iterable)은 꽤 관련성이있는 것 같았습니다. 늙은; [이 StackOverflow 질문] (http://stackoverflow.com/questions/1835018/python-check-if-an-object-is-a-list-or-tuple-but-not-string) 다소 관련이있었습니다. –