ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Tutorial 0.3 Python
    Tutorial/0.Tutorial 2022. 8. 21. 21:27

    개발 입문단계에 있어, 다른 이에게 보여줄 어떤 참고서를 작성하는 일은 나에게 마땅치 않은 것 같다. 

    기왕의 공부내용은 다른 체계(https://1drv.ms/u/s!Ah3ot1Iz99uHgQuYOr3XDyRMXjIZ)로 정리되어 있다.

    이 블로그는 일종의 "루만의 메모상자"처럼 사용하려 한다.


    0.1

     

     

     


    1.0 클래스

    *setdata 매서드

    FourCal 이라는 클래스에 setdata 매서드로 3개의 매개변수를 넣는다.

    이 때 첫번째 매개변수 self에는, 이후 클래스로 찍어낸 객체의 이름이 자동으로 불려온다.

    'self' 라는 문자열 자체는 그냥 관례적인 사용. 다르게 해도 상관 없다.

     

    클래스를 통해 메서드를 호출하는 것도 가능. 이때는 객체 a를 첫 번째 매개변수 self에 꼭 전달해 주어야 한다.

    a = FourCal()
    FourCal.setdata(a, 4, 2)

     

    객체.메서드 형태로 호출할 때는 self를 반드시 생략해서 호출해야 한다.

    a = FourCal()
    a.setdata(4, 2)

     

    *사칙연산 실습

    >>> class FourCal:
    ...     def setdata(self, first, second):
    ...         self.first = first
    ...         self.second = second
    ...     def add(self):
    ...         result = self.first + self.second
    ...         return result
    ...     def mul(self):
    ...         result = self.first * self.second
    ...         return result
    ...     def sub(self):
    ...         result = self.first - self.second
    ...         return result
    ...     def div(self):
    ...         result = self.first / self.second
    ...         return result

     

     

    result = 0
    
    def add(num):
        global result
        result += num
        return result
    
    print(add(3))
    print(add(4))

    매개변수 num을 result에 더한 후 리턴하는 함수.

    add(3) = 3, add(4) = 7 이 나온다.

     

    *생성자

    객체에 초깃값을 설정해야 할 필요가 있을 때는 setdata와 같은 메서드를 호출하여 초깃값을 설정하기보다는 생성자를 구현하는 것이 안전한 방법이다. 생성자(Constructor)란 객체가 생성될 때 자동으로 호출되는 메서드를 의미한다.

     

    파이썬 메서드 이름으로 __init__를 사용하면 이 메서드는 생성자가 된다. 

    def __init__(self, first, second):
        self.first = first
        self.second = second

     

    __init__ 메서드는 setdata 메서드와 이름만 다르고 모든 게 동일하다.

    단 메서드 이름을 __init__으로 했기 때문에 생성자로 인식되어 객체가 생성되는 시점에 자동으로 호출되는 차이가 있다.

     

    *미경험에서 나오는 의문. setdata 로 지정하지 않고 굳이 생성자를 만들어야 하는 이유는 무엇인가?

     

     

Designed by Tistory.