반응형

흔히 코딩할 때 쓰이는 친구들을 이용해서 적당한 구조를 만들어보자.

일단 파이썬도 자바와 동일하게 객체지향이기 때문에 클래스(Class)를 많이 사용한다.

클래스는 붕어빵 틀과 같다. 그리고 클래스로 객체를 만들 수 있는데 이는 인스턴스라고도 하고 객체라고도 한다.

즉, 붕어빵 틀인 클래스로 붕어빵인 객체(인스턴스)를 만드는 것이다. 이 때 붕어빵 틀은 고정되어 있지만 붕어빵안에는 슈크림, 팥 등 다양한 것이 들어갈 수 있다. 무슨 이야기인지 밑의 코드로 확인하자.

class FishBread:
    def __init__(self):
        self.source = 'red_bean'

    def set_source(self, source):
        self.source = source

    def get_source(self):
        return self.source

if __name__ == '__main__':
    fish_bread = FishBread()
    fish_bread.set_source('puff')
    what_source = fish_bread.get_source()
    print(what_source)

차근차근 살펴보자 먼저, FishBread 클래스를 생성(정의)한다. FishBread는 붕어빵 틀 답게 소스(팥, 슈크림 등)을 세팅해주는 기능이 있다. 여기서 __init__메소드는 객체(인스턴스)를 생성할 때 딱 한번 제일 처음으로 실행되는 메소드이므로 번역하자면 붕어빵 틀의 기본 소스는 팥(red_bean)인 셈이다.

메인으로 넘어와서 fish_bread = FishBread()로 객체(인스턴스)를 생성해준다. 즉 붕어빵 틀로 붕어빵을 만들어 낸다.

이때 fish_bread.set_source('puff')로 붕어빵의 소스를 슈크림(puff)로 세팅한다.

그러면 fish_bread는 슈크림을 가지고 있는 붕어빵이 된다.

그리고 fish_bread.get_source()로 어떤 소스가 담겨있는지를 what_source변수에 넣어주고 프린트한다.

그렇다면 손님이 팥붕과 슈붕을 모두 주문했다면 어떻게 할까?

답은 간단하다.

if __name__ == '__main__':
    fish_bread_1 = FishBread()
    fish_bread_2 = FishBread()
    fish_bread_1.set_source('puff')
    fish_bread_2.set_source('red_bean')
    what_source_1 = fish_bread_1.get_source()
    what_source_2 = fish_bread_2.get_source()
    print(what_source_1)
    print(what_source_2)

위와 같이 코딩을 해내면 1개의 붕어빵 틀로 두가지 맛의 붕어빵을 만들 수 있다.

안에 피자맛을 넣어도 좋다.

암튼 클래스를 이용한다면 다음과 같은 절차를 따르면 된다.

1. 클래스 생성

2. 메인에서 객체(인스턴스)생성

3. 인스턴스를 이용하여 메소드 사용

반응형

'Python' 카테고리의 다른 글

opencv cv2.imshow 에러 해결방법  (0) 2022.03.31
pix2pix augmentation  (0) 2022.03.31
exception print하기  (0) 2022.01.26
log threading 로깅이 서비스에 방해되지 않게 하기  (0) 2021.08.31
pip install opencv-python 에러  (0) 2021.07.13

+ Recent posts