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 함수를 이용하여 출력 된 것입니다


    Posted by Server-talk 서버이야기