반응형
매직 메서드(스페셜 메서드) 활용하기
- 매직 메서드는 두 개의 밑줄로 시작하고 끝나는 특별한 메서드들입니다.
- 이 메서드들은 특정 상황에서 자동으로 호출되며, 파이썬의 다양한 기능을 지원합니다.
- 예를 들어, 객체의 생성, 소멸, 연산자 오버로딩 등에서 사용됩니다.
[매직 메서드(스페셜 메서드)의 활용법]
1. __init__: 객체 초기화 메서드 (생성자)
- 객체가 생성될 때 자동으로 호출되어 초기 상태를 설정합니다.
class MyClass:
def __init__(self, value):
self.value = value
obj = MyClass(10)
print(obj.value) # 10 출력
- 활용법
- 객체를 생성할 때 필요한 초기 값을 설정하는 데 사용됩니다.
- 여러 속성을 초기화하거나 필요한 설정 작업을 수행할 수 있습니다.
2. __str__: 객체의 문자열 표현을 반환
- print() 함수나 str() 함수가 호출될 때 사용됩니다. 사람이 읽기 쉬운 형태로 객체를 표현합니다.
class MyClass:
def __init__(self, value):
self.value = value
def __str__(self):
return f"MyClass with value {self.value}"
obj = MyClass(10)
print(obj) # MyClass with value 10 출력
- 활용법
- 객체를 쉽게 이해할 수 있도록 정보를 제공하는 문자열로 표현할 수 있습니다.
- 디버깅이나 로깅 시 유용하게 사용할 수 있습니다.
3. __repr__: 객체의 공식적인 문자열 표현을 반환
- repr() 함수가 호출될 때 사용됩니다. 디버깅 용도로 객체의 상세 정보를 표현합니다.
class MyClass:
def __init__(self, value):
self.value = value
def __repr__(self):
return f"MyClass({self.value})"
obj = MyClass(10)
print(repr(obj)) # MyClass(10) 출력
- 활용법
- 객체를 재현 가능한 문자열로 표현합니다.
- 디버깅 시 객체의 상태를 확인하는 데 사용됩니다.
4. __add__: + 연산자 오버로딩
- "+" 연산자를 사용하여 두 객체를 더할 때 호출됩니다.
class MyClass:
def __init__(self, value):
self.value = value
def __add__(self, other):
return MyClass(self.value + other.value)
obj1 = MyClass(10)
obj2 = MyClass(20)
result = obj1 + obj2
print(result.value) # 30 출력
- 활용법
- 사용자 정의 객체 간의 연산을 정의할 수 있습니다.
- 벡터나 행렬 같은 수학적 객체의 연산을 정의할 때 유용합니다.
5. __len__: 객체의 길이를 반환
- len() 함수가 호출될 때 사용됩니다.
class MyCollection:
def __init__(self, items):
self.items = items
def __len__(self):
return len(self.items)
collection = MyCollection([1, 2, 3, 4, 5])
print(len(collection)) # 5 출력
- 활용법
- 컬렉션 객체의 길이를 반환하는 기능을 정의할 수 있습니다.
- 리스트, 집합, 사전 등의 사용자 정의 컬렉션에 적용할 수 있습니다.
반응형
'개발 > Python' 카테고리의 다른 글
[파이썬, Python] 패키지 __init__.py 활용법 총정리 (0) | 2024.07.12 |
---|---|
[파이썬, Python] 패키지 활용법 총정리 (0) | 2024.07.11 |
[파이썬, Python] 네이밍 방법 총정리 (0) | 2024.07.11 |
[파이썬, Python] pickle 활용법 총정리 (0) | 2024.07.10 |
[파이썬, Python] pandas 활용법 총정리 (0) | 2024.07.07 |