파이썬(python) 클래스(class) 와 생성자(init) 사용방법 및 예제
클래스를 만들때 파이썬은 생성자를 만들어야하는 경우 __init__를 사용하여 정의할 수 있습니다. 언더스코어(_) 두개를 앞뒤로 붙여서 초기화 합니다. 이것은 규칙입니다. 생성자는 클래스를 생성시 자동으로 실행되는 코드를 의미합니다.
■생성자 정의하기
>>> class Person:
... name = ""
... age = 0
... def __init__(self,name, age):
... self.name = name
... self.age = age
... print("생성자 호출됨:" + self.name + " age: "+ str(age))
>>> a = Person("홍길동",30)
생성자 호출됨:홍길동 age: 30
>>>
>>> a.name
'홍길동'
클래스 생성시 생성자의 인자(파라미터)를 전달하여 초기화 하는 경우 , 아래 코드 스니펫 처럼, name 과 age의 변수 선언을 하지 않고도 사용가능하며 접근할 수 있습니다.
>>> class Person:
... def __init__(self,name, age):
... self.name = name
... self.age = age
... print("생성자 호출됨:" + self.name + " age: "+ str(age))
>>> a = Person("홍길동",30)
생성자 호출됨:홍길동 age: 30
>>>
>>> a.name
'홍길동'
■ 클래스 내에 함수 정의하기
클래스 내에서 함수(메서드)를 정의할 때 첫번째 인자(parameter)로 self를 사용해야합니다. 규칙이라고 생각하면 편합니다. 생성자(Constructor) 역시 함수 임으로 동일하게 적용됩니다.
>>>
>>> class Person:
... def __init__(self,name, age):
... self.name = name
... self.age = age
... print("생성자 호출됨:" + self.name + " age: "+ str(age))
... def whoAreYou(self):
... return "나는 {}입니다".format(self.name)
... def updatePerson(self, name, age):
... self.name = name
... self.age = age
...
>>> a = Person("홍길동",30)
생성자 호출됨:홍길동 age: 30
>>>
>>> a.whoAreYou()
'나는 홍길동입니다'
>>>
>>> a.updatePerson("아이유",24)
>>> a.whoAreYou()
'나는 아이유입니다'
>>>
[REFERENCE]
파이썬 자습서 :docs.python.org/ko/3/tutorial/classes.html#a-first-look-at-classes

