클래스
메서드
생성자
__init__메서드
지난번 작성해두었던 사칙연산 클래스입니다.
class Calculator: #클래스 구현
def twonum(self, one, two) #메서드의 매개변수 self, one, two
self.one = one #매서드의 수행문
self.two = two #매서드의 수행문
def plus(self): #메서드의 매개변수 self
result = self.one + self.two
return result
def minus(self): #메서드의 매개변수 self
result = self.one - self.two
return result
def mply(self): #메서드의 매개변수 self
result = self.one * self.two
return result
def dvid(self): #메서드의 매개변수 self
result = self.one / self.two
return result
객체를 생성한 후, twonum 메서드를 이용해 두 숫자를 입력받은 뒤 사칙연산을 수행하게 되는데요. 이런 과정 없이 객체를 생성함과 동시에 숫자를 입력받아 계산을 하고싶다면 어떻게 해야할까요?
방금 전의 예시처럼, 생성자는 객체에 초깃값을 설정해야 할 필요가 있을때 사용합니다. 생성자를 만들면 객체를 생성하는 동시에 값을 초기화해줄 수 있습니다.
생성자(Constructor) : 객체가 생성될 떄 자동으로 호출되는 메서드
class Calculator: #클래스 구현
def __init__(self, one, two):
self.one = one
self.two = two
def twonum(self, one, two) #메서드의 매개변수 self, one, two
self.one = one #매서드의 수행문
self.two = two #매서드의 수행문
def plus(self): #메서드의 매개변수 self
result = self.one + self.two
return result
def minus(self): #메서드의 매개변수 self
result = self.one - self.two
return result
def mply(self): #메서드의 매개변수 self
result = self.one * self.two
return result
def dvid(self): #메서드의 매개변수 self
result = self.one / self.two
return result
이전에 작성했던 클래스에 생성자를 추가하였습니다. 메서드 이름으로 __init__을 사용하면 생성자가 됩니다.
def __init__(self, one, two):
self.one = one
self.two = two
cal1 = Calculator(1, 2)
생성자만 불러와 살펴봅시다. 클래스로 인스턴스를 만들면 인스턴스가 생성됨과 동시에 생성자가 실행되어 인스턴스 변수를 만들고 값을 초기화 할 수 있습니다.