티스토리 뷰

'''
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)

My MBTI type is ENTP. (Of course I do not believe it 100%, but I want to do that) I use Node.js to develop the backend. I use Ubuntu Linux as my development environment, and I love Vim. I am interested in open source and are keen to contribute. I have a bachelor's degree in computer science from Catholic University and now a software engineer at Plating Inc., I spent about 5 years developing and learning, and I am still interested in software development and culture. Recently, I am interested in React, Serverless structure, Domain Design Driven. Sometimes I play drums in the band.