2025-01-20T02:26:20
This commit is contained in:
40
doc/10_06_magic_method.md
Normal file
40
doc/10_06_magic_method.md
Normal 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)
|
||||
```
|
||||
Reference in New Issue
Block a user