반응형
파이썬 내장 함수 'setattr()'
파이썬의 내장 함수 setattr()
는 객체에 동적으로 속성을 추가하거나 기존 속성의 값을 수정할 때 사용됩니다. 이 함수는 동적으로 객체 속성을 관리할 수 있는 강력한 도구입니다.
setattr()
함수의 문법
setattr(object, name, value)
object
: 속성을 추가하거나 수정할 객체.name
: 추가하거나 수정할 속성의 이름 (문자열로 전달).value
: 해당 속성에 설정할 값.
동작 원리
setattr()
함수는 객체에 지정한 이름의 속성을 생성하거나 수정하며, 만약 해당 속성이 이미 존재한다면 그 값을 변경합니다.- 만약 해당 속성이 존재하지 않으면 새로 생성됩니다.
예시 1: 객체에 속성 추가하기
class MyClass:
pass
obj = MyClass()
# 새로운 속성 추가
setattr(obj, 'new_attribute', 'Hello, world!')
# 추가된 속성 확인
print(obj.new_attribute) # 출력: Hello, world!
예시 2: 기존 속성 수정하기
class MyClass:
def __init__(self):
self.attribute = 'Old Value'
obj = MyClass()
# 기존 속성 출력
print(obj.attribute) # 출력: Old Value
# 속성 값 수정
setattr(obj, 'attribute', 'New Value')
# 수정된 속성 출력
print(obj.attribute) # 출력: New Value
주의사항
setattr()
로 동적으로 추가된 속성은 해당 객체에서만 적용됩니다.- 만약 클래스의 속성을 수정하려면 객체가 아니라 클래스 자체에
setattr()
을 적용해야 합니다.
유용한 사용 예시
- 동적 속성 관리: 속성의 이름을 변수로 처리하여 동적으로 객체에 속성을 추가하거나 수정할 수 있습니다.
- 메타 프로그래밍: 객체에 대한 정보를 기반으로 속성을 유연하게 관리할 수 있습니다.
예시 3: 속성 이름을 동적으로 처리하기
class MyClass:
pass
obj = MyClass()
# 동적 속성 이름
attribute_name = 'dynamic_attribute'
# 동적으로 속성 추가
setattr(obj, attribute_name, 'Dynamic Value')
# 추가된 속성 출력
print(obj.dynamic_attribute) # 출력: Dynamic Value
이와 같이 setattr()
함수는 파이썬에서 객체의 속성을 동적으로 관리할 때 매우 유용합니다.
'실버를 위한 코딩 > 파이썬' 카테고리의 다른 글
[내장 함수] 파이썬 내장 함수, classmethod() (2) | 2024.10.11 |
---|---|
[내장 함수] 파이썬 내장 함수 'chr(i)' (2) | 2024.10.10 |
[내장 함수] 파이썬 내장 함수, delatter() (1) | 2024.10.08 |
[내장 함수] 파이썬 내장 함수, bytes([source[, encoding[, errors]]]) (3) | 2024.10.05 |
[내장 함수] 파이썬 내장 함수 'bytearray' (0) | 2024.10.04 |