반응형
질문
객체에 어떤 속성이 있는지 확인하는 방법은 무엇인가요? 예를 들어:
>>> a = SomeClass()
>>> a.property
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: SomeClass instance has no attribute 'property'
a
가 property
속성을 가지고 있는지 사용하기 전에 어떻게 알 수 있나요?
답변
다음을 시도하십시오. hasattr()
:
if hasattr(a, 'property'):
a.property
아래 zweiterlinde의 답변을 참조하십시오. 그는 용서를 구하는 것에 대한 좋은 조언을 제공합니다! 매우 파이썬적인 접근 방식입니다!
파이썬의 일반적인 관행은, 속성이 대부분 있을 것으로 예상된다면, 그냥 호출하고 예외를 전파하거나 try/except 블록으로 예외를 처리하는 것입니다. 이렇게 하면 hasattr
보다 빠를 가능성이 높습니다. 속성이 대부분 없을 것으로 예상되거나 확신이 없다면, hasattr
을 사용하는 것이 예외 블록에 반복해서 빠지는 것보다 빠를 것입니다.
반응형
댓글