프로그래밍 언어/Python

객체에 Python 속성이 있는지 확인하는 방법

Rateye 2022. 2. 1. 14:19
728x90
반응형
질문 : 객체에 Python 속성이 있는지 확인하는 방법

파이썬에서 객체에 속성이 있는지 확인하는 방법이 있습니까? 예를 들면 :

>>> a = SomeClass()
>>> a.someProperty = value
>>> 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 을 사용하는 것이 반복적으로 예외 블록에 빠지는 것보다 빠를 것입니다.

출처 : https://stackoverflow.com/questions/610883/how-to-know-if-an-object-has-an-attribute-in-python
728x90
반응형