본문 바로가기
PYTHON/python 기초

[python] 매직메소드 __init__

by 자유데이터 2021. 2. 9.
반응형

데이터 분석가의 길, 자유데이터입니다.

 

 

  • 파이썬 매직메소드(magic method)

무심하게 지나간 __init__의 의미를 파악해보자.

  1. 매직메소드란
  2. __init__이란
  3. 기타 메소드

1. 매직 메소드란

클래스안에 정의할 수 있는 스페셜 메소드이며, 클래스를 int, str, list등의 파이썬의 빌트인 타입(built-in type)과 같은 작동을 하게 해준다.

클래스를 만들때 항상 사용하는 __init__이나 __str__는 가장 대표적인 매직 메소드이며 우리들이 가장 잘 아는 매직 메소드.

만들어진 클래스에서 매직 메소드가 자동으로 호출됨.
예제를 통해 무슨 말인지 알아보자. 

 

2. __init__이란

초기화 메서드라고 불리며 객체가 생성될 때 여러가지 성질을 갖게 하는 기능

class Food(object):
    def __init__(self, name, price):
        self.name = name
        self.price = price

음식이라는 객체를 만들었을때, 이름(name)과 가격(price)이라는 성질을 갖게 한다.

 

3. 기타 메서드

__str__ : 객체 정보를 문자열로 반환하는 메서드

class Food(object):
    def __init__(self, name, price):
        self.name = name
        self.price = price

food_1 = Food('아이스크림', 3000)

# 인스턴스 출력
print(food_1)

 

<__main__.Food object at 주소>

__str__ 메소드를 사용하지 않고 객체를 프린트하면 객체의 주소만 불러오게 된다.

 

class Food(object):
    def __init__(self, name, price):
        self.name = name
        self.price = price
        
    def __str__(self):
        return '아이템: {}, 가격: {}'.format(self.name, self.price)

food_1 = Food('아이스크림', 3000)

# 인스턴스 출력
print(food_1)

아이템: 아이스크림, 가격: 3000

 

__str__ 메서드 이외에 __repr__, __add__ 등 다양한 메서드가 있다.
필요한 상황에 따라 사용하면 된다.

 

 

 

반응형

댓글