Python 속성을 확인하기위한 get () 유사 메소드


79

나는 사전을 가지고 있다면 dict나는 확인하고 싶었다 dict['key']나는 중 하나에 그렇게 할 수있는 try블록 (bleh!) 또는 사용 get()으로, 방법을 False기본 값으로.

에 대해 동일한 작업을하고 싶습니다 object.attribute. 즉, False설정되지 않은 경우 반환 할 개체가 이미 있지만 다음과 같은 오류가 발생합니다.

AttributeError : 'bool'개체에 'attribute'속성이 없습니다.

답변:


125

에 대한 직접적인 아날로그 dict.get(key, default)이상은 hasattr입니다 getattr.

val = getattr(obj, 'attr_to_check', default_value)

( default_value선택 사항 인 경우 속성을 찾을 수없는 경우 예외를 발생시킵니다.)

예를 들어 False.


20

hasattr()아마도 의미 합니까?

hasattr(object, "attribute name") #Returns True or False

Python.org doc-내장 함수-hasattr ()

이 작업을 수행 할 수도 있는데, 이는 좀 더 복잡하고 메서드에서 작동하지 않습니다.

"attribute" in obj.__dict__

7

확인하는 키는 사용할 수있는 사전에있는 경우 in: 'key' in dictionary.

객체의 속성을 확인하려면 다음 hasattr()함수를 사용하십시오 .hasattr(obj, 'attribute')


OP가 제시 한 사전을 확인하는 두 가지 옵션 모두 Bleh!
Mad Physicist
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.