2025-01-20T02:26:20

This commit is contained in:
2025-01-20 02:26:20 +09:00
parent 63d0b103bd
commit 9b77010fec
51 changed files with 3226 additions and 963 deletions

40
doc/10_06_magic_method.md Normal file
View File

@@ -0,0 +1,40 @@
# 매직 메서드
매직 메서드는 파이썬에서 `__` (더블 언더스코어)로 시작하고 끝나는 특별한 메서드입니다. 이러한 메서드들은 파이썬 인터프리터가 객체에 대한 특정 연산을 수행할 때 자동으로 호출되어, 우리가 원하는 방식으로 객체를 동작하게 만들 수 있도록 해줍니다.
* 사용자 정의 클래스를 내장 자료형처럼 사용: 리스트, 딕셔너리처럼 자연스러운 연산을 수행할 수 있도록 합니다.
* 연산자 오버로딩: +, -, * 등의 연산자를 우리가 정의한 클래스에 맞게 재정의할 수 있습니다.
* 객체의 표현 방식 커스터마이징: print() 함수에서 객체를 출력할 때 어떤 형태로 보여줄지 정의할 수 있습니다.
## 주요 메서드
* `__init__` : 객체 생성 시 호출되는 생성자 메서드입니다.
* `__del__` : 객체가 메모리에서 삭제되기 직전에 자동으로 호출되는 소멸자 메서드입니다.
* `__str__` : 객체를 문자열로 변환할 때 호출되어, 사용자에게 보여줄 문자열을 반환합니다.
* `__repr__` : 객체의 공식적인 문자열 표현을 반환합니다. 개발자가 디버깅이나 로그를 위해 사용합니다.
* `__len__` : 객체의 길이를 반환합니다. (len() 함수 호출 시 내부적으로 호출)
* `__getitem__` : 객체의 요소를 인덱싱하여 접근할 때 호출됩니다. (리스트, 딕셔너리처럼)
* `__setitem__` : 객체의 요소를 할당할 때 호출됩니다.
* `__delitem__` : 객체의 요소를 삭제할 때 호출됩니다.
* `__add__` : 더하기 연산자(+)를 사용할 때 호출됩니다.
* `__sub__` : 빼기 연산자(-)를 사용할 때 호출됩니다.
* `__mul__` : 곱하기 연산자(*)를 사용할 때 호출됩니다.
* `__eq__` : 두 객체가 같은지 비교할 때 호출됩니다.
* `__ne__` : 두 객체가 다른지 비교할 때 호출됩니다.
```python
class Vector:
def __init__(self, x, y):
self.x = x
self.y = y
def __repr__(self):
return f'Vector({self.x}, {self.y})'
# __add__ 메서드를 통해 벡터의 덧셈을 정의했습니다.
def __add__(self, other):
return Vector(self.x + other.x, self.y + other.y)
v1 = Vector(2, 3)
v2 = Vector(1, 2)
print(v1 + v2) # Vector(3, 5)
```