티스토리 뷰

'''
Created on 2014. 8. 10.

@author: uyu423@gmail.com
'''

import random

# 0. 객체지향을 통해 크게 3가지 형태의 클래스가 나온다. Data, B.O, U.I
# 1. 데이터를 클래스로 만들 수 있음(Data)
# 2. 프로그램이 해야하는 기능을 모아서 클래스로 만들 수 있음(Business Object(B.O). B.O는 입출력을 처리하지 않음(중요)
# 3. 실제 입출력을 담당하는 UI 클래스도 있음(UI)
# 4. 모든 프로그램은 CRUD(Create, Read, Update, Delete)가 기본

class LottoBall:  # Data 

    def __init__(self, num):
        self.num = num
        
class LottoMachine:  # B.O
    
    def __init__(self):
        self.ballList = []
        for i in range(1, 46):
            self.ballList.append(LottoBall(i))
            
    def selectBalls(self):
        random.shuffle(self.ballList)
        return self.ballList[0:6]
    
class LottoUI:  # U.I
    
    def __init__(self):
        self.machine = LottoMachine()
        
    def playLotto(self):
        input("로또를 뽑을까요?")
        selectedBalls = self.machine.selectBalls()
        for ball in selectedBalls:
            print("%d" % (ball.num))

# main
ui = LottoUI()
ui.playLotto()

간단한 주석을 달아놓았다.

우연히 참가하게된 파이썬 교육에서 강사님께서 알려준 객체지향의 3요소, 데이터(Data), 처리(B.O), 입출력(I/O) 클래스가 분리되어 있다.

이번 주에는 로또나 한장 사봐야 겠다.



'개인공부 > Python' 카테고리의 다른 글

Python03 : 파이썬 객체지향 예제  (0) 2014.08.12
Python02 : 조건문, 반복문, 함수 예제  (0) 2014.08.12
Python01 : 파이썬?  (0) 2014.08.11
공유하기 링크
태그 클라우드
, , ,
프로필사진

Yowu (Yu Yongwoo)

백엔드 개발 정점을 꿈꾸는 흔한 개발자입니다
우분투 데스크탑 개발 환경을 매우 선호합니다
최근에는 vscode에 vim 모드 올려서 쓰고 있습니다
개발용 키보드는 역시 해피해킹 프로2 무각입니다
락 밴드에서 드럼을 꽤나 오래 쳤었습니다