흔히 코딩할 때 쓰이는 친구들을 이용해서 적당한 구조를 만들어보자.
일단 파이썬도 자바와 동일하게 객체지향이기 때문에 클래스(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 |