hasattr(object, name) / getattr(object, name) / setattr(object, name)

2021. 6. 15. 15:30Python

728x90

object의 속성(attribute) 존재를 확인한다.

만약 argument로 넘겨준 object 에 name 의 속성이 존재하면 True, 아니면 False를 반환한다. 

__builtin__ module에 포함된 function

 

내부적으로 getattr(object, name)을 이용 -> 수행시 exception이 발생하는지 하지 않는지를 통해 판단

 

class cls:
    a = 1
    def __init__(self):
        self.x = 3

    def b(self):
        pass

# cls에 b라는 멤버가 있는지 확인
print(hasattr(cls, 'b'))

# cls에 x라는 멤버가 있는지 확인
print(hasattr(cls, 'x'))

# cls에서 a변수의 값 가져오기
print(getattr(cls, 'a'))

# cls의 a라는 변수에 값 9 설정하기
print(setattr(cls, 'a', 9))

print('-------------------------')
# 인스턴스 변수인 x에 대해 확인
c = cls()
print(hasattr(cls, 'x'))
print(hasattr(c, 'x'))

결과

 

728x90

'Python' 카테고리의 다른 글

[Python] __call__함수  (0) 2021.07.26
[python] *args , **kwargs  (0) 2021.07.19
class 이름/ class 변수 참조  (0) 2021.06.15
__getitem__  (0) 2021.05.21
Python argparse  (0) 2021.05.09