Language/Python

Python - getattr(), object의 속성(attribute) 값을 확인하는 함수

TechNote.kr 2018. 1. 2. 12:36
728x90


getattr



>>> getattr(object, name[, default])


object에 존재하는 속성의 값을 가져온다.


__builtin__ module에 포함된 function 이다. 



예제에 앞서 getattr 예제를 위한 object를 다름과 같이 먼저 생성한다. 

>>> class sample:
...     def __init__(self, x):
...             self.x = x
...
>>>
>>> c = sample(1)
>>> c.x
1


예제)


기존 속성의 값을 가져오는 경우

>>> getattr(c, 'x')
1

getattr을 사용하지 않고, c.x를 하여도 동일한 결과를 얻을 수 있다. 

>>> c.x
1


기존에 존재하지 않는 속성을 가져오려 하는 경우 (기본값이 없는 경우)

>>> getattr(c, 'z')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: sample instance has no attribute 'z'


기존에 존재하지 않는 속성을 가져오려 하는 경우 (기본값이 있는 경우)

>>> getattr(c, 'z', 10)
10


참고>


setattr() - object의 속성(attribute) 값을 설정하는 함수

getattr() - object의 속성(attribute) 값을 확인하는 함수

delattr() - object의 속성(attribute)을 제거하는 함수

hasattr() - object의 속성(attribute) 존재를 확인하는 함수




>>> help(getattr)


Help on built-in function getattr in module __builtin__:


getattr(...)

    getattr(object, name[, default]) -> value


    Get a named attribute from an object; getattr(x, 'y') is equivalent to x.y.

    When a default argument is given, it is returned when the attribute doesn't

    exist; without it, an exception is raised in that case.






728x90