- Python 기초 문법(Magic Method)
Date:
Magic Method
- 사칙연산이나, 조건문은 간단한 기호(+,-,*,/,>,<)로 연산할 수 있도록 도와주고, 특별한 상황이 됐을때 자동으로 동작하는 기능을 수행하는 method
- Python 내부에는 이미 여러가지 Magic Method를 가지고 있음
__매직메소드이름__
형식으로 사용함
Magic Method 동작 방법(__add__
)
__add__
Method가 있는 경우+
에 대한 연산을 가능하게 한다x + y
라는 입력이 주어졌을 때, 이것은x.__add__(y)
로 연산을 하게 됨
📰code
class AddExample():
def __init__(self,i):
self.i=i
def __add__(self, other):
return self.i + other.i
a=AddExample(3)
b=AddExample(5)
print(a+b)
🔍result
8
자주 사용하는 Magic Method
__init__
: 생성자라고 불리며, 인스턴스가 생성될때 파이썬 인터프리터에 의해 자동으로 호출되는 메소드__main__
: 현재 실행되고 있는 파일에 붙는 이름
📰code
class MyFunc:
pass
print(__name__)
🔍result
__main__
__call__
: 함수를 불러올때 사용하는()
를 사용하면 function이라는 클래스 객체의__call__
메소드를 호출하는 것
📰code
class MyFunc:
def __call__(self, *args, **kwargs):
print("호출됨")
f = MyFunc()
f()
🔍result
호출됨
__getattribute__
: 메소드 호출시 (.)을 찍는데, 이때 호출되는 함수
📰code
class Stock:
def __getattribute__(self, item):
print(item, "객체에 접근하셨습니다.")
s = Stock()
s.data
🔍result
data 객체에 접근하셨습니다.
비공개 속성
- 비공개 속성은 이름이 __ (밑줄 두 개)로 시작함
- 단,
__속성__
처럼 밑줄 두 개가 양 옆에 왔을 때는 Magic Method
📌reference
💡 수정 필요한 내용은 댓글이나 메일로 알려주시면 감사하겠습니다!💡
댓글