Python(파이썬) - Class(클레스)와 생성자
Python(파이썬) - Class(클레스)와 생성자
지난시간에는 객체를 제작에 이여서 계산기 제작을 하는 과정에서 클레스와 생성자는 무엇이고 어떠한 역할을 하는지 알아보도록 하겠습니다.
관련글:
Python(파이썬) - 객체(Object) - http://server-talk.tistory.com/210
Python(파이썬) - 객체제작 - http://server-talk.tistory.com/212
Python(파이썬) - 클레스 제작하기 |
코드를 보기에 앞서 추상적일수 있으니 그림을 통해 실행과정을 보겠습니다
위 그림을 보시면 이전에 클래스는 틀 이라고 하였는데요 당연히 처음에 제작시 아무것도 없게 되겠죠?
위 그림처럼 앞으로 클래스 안에 함수와 변수를 만들어 보도록 하겠습니다
class Calc(object): C1 = Calc(20, 10) print(C1.sum())
위 코드는 첫째 줄을 보시면 Calc라는 클래스가 추가된 것이며, Calc라는 클레스가 만들어진 것입니다
괄호안 object는 상속관련 포스팅에서 알아보도록 하겠습니다
Python(파이썬) - 생성자 |
파이썬에서 생성자란? 클레스로부터 인스턴스가 생성될때 자동으로 실행 되도록 하는것이 생성자라고 합니다
위 그림을 보시면 Calc라는 클레스를 실행하면 자동으로 가장먼저 생성자를 실행하게 되는데, 이과정은 파이썬에서 가장먼저 실행하도록 약속되어 있습니다
class Calc(object): def __init__() C1 = Calc(20, 10) print(C1.sum())
위 코드의 두번째 줄을 보시면 클래스 Calc을 실행하면 Calc 이용하여 인스턴스가 생성될때 생성자(__init__) 함수가 자동으로 실행되도록 약속되어 있는것이 생성자라고 합니다
__init__ : 파이썬에서 사용되는 특별한 함수 입니다.
Python(파이썬) - 인수전달 |
이제 Clac 클래스의 인수를 생성자의 매개변수로 전달하는 과정입니다 혼동이 되는 부분이 있으실 수 있으니 주의 깊게 봐주시기 바랍니다
위 그림에서 Calc 클래스의 첫번째 인수는 생성자의 두번째 매개변수로 전달하는 과정을 보실수 있으며, 두번째 인수는 생성자의 세번째 매개변수로 전달하게 됩니다
Clac이라는 클래스를 실행하면 인스턴스가 만들어 질때 첫번째 매개변수(self)가 인스터스가 됩니다
즉 첫번째 매개변수는 꼭 정의하셔야 됩니다
Python(파이썬) - 전달된 인수 데이터 확인 |
코드를 전달한 인수를 확인해 보도록 하겠습니다
class Calc(object): def __init__(self, num1, num2): print(num1,num2) C1 = Calc(20,10)
위 코드와 실행결과를 보시면 클래스의 인수 20, 10 출력되는것을 확인하실수 있습니다
왜 그런것일까요?
이유는 클래스 Calc이 실행되면 가장먼저 실행되는 함수 생성자를 만났기 때문이며, 생성자 매개변수에 사용자가 전달한 인수(20, 10)을 생성자 매개변수에 전달한후에 생성장 안에서 print 함수를 이용하여 출력 된 것입니다