이번 포스팅은 객체 지향 언어에서 중요한 객체의 속성을 다루는 방법에 대해 정리하였습니다.
파이썬은 객체지향 프로그래밍 언어로, 객체의 속성을 다루는 것은 중요합니다.
이를 위해 파이썬에서는 다양한 내장 함수들을 제공합니다.
이번에 알아볼 함수들은 객체의 속성을 조작하는 데 사용됩니다.
| 1. hasattr() 함수
'hasattr()' 함수는 객체가 주어진 이름의 속성을 가지고 있는지 여부를 확인하는 함수입니다.
| hasattr() 함수 구조
hasattr(object, name) : 주어진 이름의 속성을 가지고 있는지 여부 확인
- object : 검사할 객체
- name : 확인할 속성의 이름
예제)
class MyClass:
def __init__(self):
self.name = "John"
self.age = 30
obj = MyClass()
# 'name' 속성을 가지고 있는지 확인
print(hasattr(obj, 'name')) # True
# 'gender' 속성을 가지고 있는지 확인
print(hasattr(obj, 'gender')) # False
위 코드를 보시면 MyClass() 라는 객체를 objj에 할당하고
각각 'name'과 'gender' 라는 속성이 있는지 확인합니다. 확인 결과는 bool 형식으로 출력됩니다.
| 2. getattr() 함수
'getattr()' 함수는 객체의 속성 값을 가져옵니다. 속성이 없는 경우 기본값을 반환합니다.
| getattr() 함수 구조
getattr(object, name, default) : 속성 값을 가져옵니다.
- object : 값을 가져올 객체
- name : 값을 가져올 속성의 이름
- default : 속성이 없는 경우 반환할 기본 값, default를 설정하지 않았을 때 속성이 없을 경우 AttributeError 발생
예제)
class MyClass:
def __init__(self):
self.name = "John"
self.age = 30
obj = MyClass()
# 'name' 속성 값 가져오기
name_value = getattr(obj, 'name')
print(name_value) # 출력: John
# 'gender' 속성 값 가져오기 (속성이 없는 경우 기본값 사용)
gender_value = getattr(obj, 'gender', 'Male')
print(gender_value) # 출력: Male
| 3. setattr() 함수
'setattr()' 함수는 객체의 속성 값을 설정합니다.
| setattr() 함수 구조
setattr(object, name, value) : 속성 값을 설정합니다..
- object : 속성을 설정할 객체
- name : 설정할 속성 이름
- default : 설정할 속정 값
예제)
class MyClass:
def __init__(self):
self.name = "John"
self.age = 30
obj = MyClass()
# 'name' 속성 값 변경
setattr(obj, 'name', 'Alice')
# 변경된 'name' 속성 값 출력
print(obj.name) # 출력: Alice
# 'gender' 속성 추가 및 값 설정
setattr(obj, 'gender', 'Female')
# 추가된 'gender' 속성 값 출력
print(obj.gender) # 출력: Female
| 마무리
파이썬은 객체 지향적이게 사용하려면 위와 같은 함수를 잘 사용해서 프로젝트를 진행해 보세요!
유용하게 사용할 수 있습니다!
틀린 점이나 질문이 있으시면 댓글로 남겨주세요!
감사합니다 :)
'Python > Python 정리' 카테고리의 다른 글
Python Namespace : globals()와 locals() 이해 (0) | 2024.03.04 |
---|---|
Python collections 모듈 : Defaultdict, OrderedDict 이해 (0) | 2024.02.16 |
Python 에러 발생 방법 (raise) (0) | 2024.02.15 |
Python 예외 처리 방법 (try ~ except) (2) | 2024.02.14 |
[Python] Descriptor 이해 : 객체 속성 제어의 고급 기능 (0) | 2023.10.04 |