본문 바로가기
Language/Python

파이썬 생성자(__init__) 개념 및 예제

by wakestand 2020. 1. 27.
반응형

생성자란 객체화 시 자동으로 수행되는 문장을 만하는데

def __init__(파라미터): 를 통해 작성할 수 있다

 

생성자는 수동으로 만들어주지 않아도 객체화 시 자동으로 수행되긴 하지만

생성자를 만들 시 보낸 파라미터를 가지고 __init__ 하단에서 작성한 코드를 수행하게 되는데

 

위 예제에서는 객체화 시 보낸 name, age 파라미터를 self.name, age에 넣어준 후에

출력하는 내용인데 보면 a = ClassExample("철수", 20) 으로 객체화하고

뭔가 메소드를 호출한다거나 하는 내용이 없는데

 

객체화 한 것만으로도 생성자(Constructor)인 __init__ 메소드를 수행하는 것이 보인다

간단하게 정리해보자면

 

생성자란?

객체화 시 바로 수행하는 것!

__init__ 함수를 작성해서 객체화 시

바로 수행할 내용을 작성할 수 있다

 

예제로 사용한 코드는 아래와 같고

self 개념이 뭔 말인지 모를 경우는 아래 링크의 글을 참조해주면 된다

 

파이썬 self는 무슨 의미?

파이썬 사용 중 self가 뭔 의미인지 감이 안올텐데 self.name, name은 같은 변수를 지칭하는 것일까? 위 예제를 보면 self.name과 name은 다르다 self.name은 메소드 내에서 생성한 변수를 지칭하고 name은 파라..

wakestand.tistory.com

class ClassExample:
    def __init__(self, name, age):  # 생성자(Constructor) 생성 시 자동 수행
        self.name = name
        self.age = age + 5  # 변수 생성 후 파라미터로 보낸 값 할당
        print("[생성자] self와 변수 비교 " + str(self.age) + " age : " + str(age))
        print("[생성자] 이름 : " + self.name + " 나이 : " + str(self.age))


a = ClassExample("철수", 20)  # 객체화 (ClassExample의 정보를 a에 담음)

반응형

댓글