setattr()
- object의 속성(attribute) 값을 설정하는 내장 함수
>> setattr(object, attribute_name, value)
object에 존재하는 속성 값을 바꾸거나, 새로운 속성을 생성하여 값을 부여
예제 실행 전 setattr
예제를 위한 object를 다음과 같이 생성
>>> class sample():
... def __init__(self, x: int) -> None:
... self.x = x
>>>
>>> c = sample(x=1)
>>> c.x
1
예제 1)
기존 속성의 값을 변경하는 경우
>>> setattr(c, 'x', 10)
>>> c.x
10
새로운 속성을 생성하여 값을 할당하는 경우
>>> setattr(c,'y', 5)
>>> c.y
5
getattr()
- object의 속성(attribute) 값을 확인하는 내장 함수
| >> getattr(object, attribute_name [, default])
예제 실행 전 getattr
예제를 위한 object를 다음과 같이 생성
>>> class sample():
... def __init__(self, x: int) -> None:
... self.x = x
>>>
>>> c = sample(x=1)
>>> c.x
1
예제 2)
기존 속성의 값을 가져오는 경우
>>> getattr(c, 'x')
1
기존에 존재하지 않는 속성을 가져오려고 하는 경우 (기본 값이 없는 경우)
>>> getattr(c, 'y')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: sample instance has no attribute 'y'
기존에 존재하지 않는 속성을 가져오려고 하는 경우 (기본 값이 있는 경우)
>>> getattr(c, 'y', 10)
10
delattr()
- object에 존재하는 속성(attribute)을 제거하는 내장 함수
>> delattr(object, name)
예제 실행 전 delattr
예제를 위한 object를 다음과 같이 생성
>>> class sample():
... def __init__(self, x: int) -> None:
... self.x = x
>>>
>>> c = sample(x=1)
>>> c.x
1
예제 3)
기존 속성을 제거하는 경우
>>> delattr(c, 'x')
hasattr()
- object의 속성(attribute) 존재를 확인하는 내장 함수
>> hasattr(object, name)
argument로 넘겨준 object에 x
속성이 존재한다면 True
, 아니면 False
를 반환한다.
내부적으로 getattr(object, name)
을 이용하는데 해당 함수 수행 시 exception이 발생하는지 판단한다.
예제 실행 전 hasattr
예제를 위한 object를 다음과 같이 생성
>>> class sample():
... def __init__(self, x: int) -> None:
... self.x = x
>>>
>>> c = sample(x=1)
>>> c.x
1
해당 object에 x
속성이 존재하는 경우
>>> hasattr(c, 'x')
True