티스토리 뷰

반응형
'''
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' 카테고리의 다른 글

Python02 : 조건문, 반복문, 함수 예제  (0) 2014.08.12
Python01 : 파이썬?  (0) 2014.08.11
프로필사진

Yowu (Yu Yongwoo)

흔한 Node.js/Java 백엔드 개발자입니다
Ubuntu와 MacOS 데스크탑 개발 환경을 선호합니다
최근에는 vscode와 IntelliJ를 사용하고 있습니다
vscode에는 neovim, IntelliJ는 ideaVim
개발용 키보드는 역시 HHKB Pro 2 무각입니다
락 밴드에서 드럼을 쳤습니다

최근에 올라온 글
최근에 달린 댓글
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함
Total
Today
Yesterday