[53-59]중급 문제풀이(클래스)

이재은·2024년 5월 14일

54강.(끝)

  1. 모듈 > 클래스 > 기능
import smartTv as st > 모듈

my4KTv = st.Tv4k('65', 'silver', '4K') > 클래스호출 -> 매개변수
my4KTv.setSmartTv('on')  > 기능호출 (클래스 상속받았으면 부모클래스의 함수도 가능)
my4KTv.turnOn()
my4KTv.printTvInfo()
my4KTv.turnOff()
  1. 정보도 불러오고 싶고, turn on turn off 도 하고싶다 그리고 새롭게도 만들고 싶다
    : 미리 만들어 놓고 불러오기

55강. ★(다시)

  1. 초기정보가 없으므로 딕셔너리로 우선 관리하기
  2. 여기가 잘 이해가 아간다.. 딕셔너리 관리 / 키값 밸류값 불러오는 방법..
  3. 클래스만 만들어 놓으면 언제든 객체 호출 가능
 class BookRepository:

    def __init__(self):
        self.bDic = {}

    def registBook(self, b):
        self.bDic[b.bIsbn] = b

    def removeBook(self, isbn):
        del self.bDic[isbn]

    def printBooksInfo(self):
        for isbn in self.bDic.keys():
            b = self.bDic[isbn]
            print(f'{b.bName}, {b.bPrice}, {b.bIsbn}')

    def printBookInfo(self, isbn):
        if isbn in self.bDic:
            b = self.bDic[isbn]
            print(f'{b.bName}, {b.bPrice}, {b.bIsbn}')

        else:
            print('Lookup result does not exist')
import book as bk
myBReposit = bk.BookRepository()
myBReposit.registBook(bk.Book('python', 20000, '1234567890'))

56강. 추상클래스(끝)

추상클래스를 이용한 한/영, 한/일 사전 클래스
: 미리 사전 형태를 만들어 두고(비워두고) 각 사전에서 메서드 강제해서 불러옴

from abc import ABCMeta
from abc import abstractmethod

class AbsDictionar( mataclass=ABCMeta) :
    def __init__(self):
        self.wordDic = {}
class KorToEng(AbsDictionar) : ★여기좀 제발 기억해..

    def __init__(self):
        super().__init__() 

57강. (밑에 질문만)

주사위 게임 클래스 만들고 컴퓨터와 사용자 게임 결과 출력하기
(★순서)

#6
import random as rd
#1
class Dice :
    def __init__(self):
        self.cNum = 0
        self.uNum = 0 #초기값

    #4
    def setCnum(self):
        print(f'[Dice] setCnum() : ')
        self.cNum = rd.randint(1, 6) #7  #설정값

    #5
    def setUnum(self):
        print(f'[Dice] setUnum() : ')
        self.cNum = rd.randint(1, 6) #8
    #2
    def startNum(self):
        print(f'[Dice] startGame() : ')

        #3
        self.setCnum()
        self.setUnum()
    
    #9
    def printResult(self):
        print(f'[Dice] printResult() : ')

        if self.cNum == 0 and self.uNum == 0 :
            print('주사위 숫자 설정 전입니다')
        else :
            if self.cNum > self.uNum :
                print(f'{self.cNum} > {self.uNum} : 컴 승')
            elif self.cNum < self.uNum :
                print(f'{self.cNum} < {self.uNum} : 유저 승')
            elif self.cNum == self.uNum :
                print('무승부')

q. 이것도 되는데 굳이 왜 그렇게 하는거됴..?

58강. ★★ 다시..

자동차 경주 게임

profile
Dare to be an optimist

0개의 댓글