class NormalTv:
def init(self, i = 32, c = 'black', r = 'full-HD'):
self.inch = i
self.color = c
self.resolution = r
self.smartTv = 'off'
self.aiTv = 'off'
def turnOn(self):
print('TV power on!!')
def turnOff(self):
print('TV power off!!')
def printTvInfo(self):
print(f'inch: {self.inch}inch')
print(f'color: {self.color}')
print(f'resolution: {self.resolution}')
print(f'smartTv: {self.smartTv}')
print(f'aiTv: {self.aiTv}')
class Tv4k(NormalTv):
def init(self, i, c, r = '4k'):
super().init(i, c, r)
def setSmartTv(self, s):
self.smartTv = s
class Tv8k(NormalTv):
def init(self, i, c, r = '8k'):
super().init(i, c, r)
def setSmartTv(self, s):
self.smartTv = s
def setAiTv(self, a):
self.aiTv = a
import smartTV as st
my4KTv = st.Tv4k('65', 'silver', '4k')
my4KTv.setSmartTv('On')
my4KTv.turnOn()
my4KTv.printTvInfo()
my4KTv.turnOff()
friend4KTv = st.Tv4k('55', 'white', '4k')
friend4KTv.setSmartTv('Off')
friend4KTv.turnOn()
friend4KTv.printTvInfo()
friend4KTv.turnOff()
my8KTv = st.Tv8k('75', 'black', '8k')
my8KTv.setSmartTv('On')
my8KTv.setAiTv('On')
my8KTv.turnOn()
my8KTv.printTvInfo()
my8KTv.turnOff()
friend8KTv = st.Tv8k('86', 'red', '8k')
friend8KTv.setSmartTv('On')
friend8KTv.setAiTv('Off')
friend8KTv.turnOn()
friend8KTv.printTvInfo()
friend8KTv.turnOff()
TV power on!!
inch: 65inch
color: silver
resolution: 4k
smartTv: On
aiTv: off
TV power off!!
TV power on!!
inch: 55inch
color: white
resolution: 4k
smartTv: Off
aiTv: off
TV power off!!
TV power on!!
inch: 75inch
color: black
resolution: 8k
smartTv: On
aiTv: On
TV power off!!
TV power on!!
inch: 86inch
color: red
resolution: 8k
smartTv: On
aiTv: Off
TV power off!!
class Book:
def init(self, name, price, isbn):
self.name = name
self.price = price
self.isbn = isbn
class BookRepository:
def init(self):
self.bDic = {} # -> 초기 생성, 딕셔너리를 이용해서 책 정보를 저장하고 관리 / 데이터베이스가 없으니
def registBook(self, b):
self.bDic[b.isbn] = b # 키 값은 isbn, 책 한 권을 그대로 다 저장한다
def removeBook(self, isbn):
del self.bDic[isbn]
def printBooksInfo(self):
for isbn in self.bDic.keys():
b = self.bDic[isbn] #
def printBooksInfo(self):
for isbn in self.bDic.keys():
b = self.bDic[isbn]
from abc import ABCMeta
from abc import abstractmethod
class AbsDictionary(metaclass = ABCMeta): # 추상클래스 명시
def init(self):
self.wordDic = {}
@abstractmethod # 추상 메서드가 되려면 '@ -' 써야함
def registWord(self, w1, w2):
pass # 추상클래스의 메서드는 구현하면 안된다.
@abstractmethod
def removeWord(self, w1):
pass
@abstractmethod
def updateWord(self, w1, w2):
pass
@abstractmethod
def searchWord(self, w1):
pass
class KorToEng(AbsDictionary):
def init(self):
super().init()
def registWord(self, w1, w2):
print(f'[KorToEng] registWord() : {w1} to {w2}')
self.wordDic[w1] = w2
def removeWord(self, w1):
print(f'[KorToEng] removeWord() : {w1} ')
del self.wordDic[w1]
def updateWord(self, w1, w2):
print(f'[KorToEng] updateWord() : {w1} to {w2}')
self.wordDic[w1] = w2
def searchWord(self, w1):
print(f'[KorToEng] searchWord() : {w1}')
return self.wordDic[w1]
# 검색하는 거니까 return
def printWords(self):
for k in self.wordDic:
print(f'{k}: {self.wordDic[k]}')
class KorToJpa(AbsDictionary):
def init(self):
super().init()
def registWord(self, w1, w2):
print(f'[KorToJpa] registWord() : {w1} to {w2}')
self.wordDic[w1] = w2
def removeWord(self, w1):
print(f'[KorToJpa] removeWord() : {w1} ')
del self.wordDic[w1]
def updateWord(self, w1, w2):
print(f'[KorToJpa] updateWord() : {w1} to {w2}')
self.wordDic[w1] = w2
def searchWord(self, w1):
print(f'[KorToJpa] searchWord() : {w1}')
return self.wordDic[w1]
# 검색하는 거니까 return
def printWords(self):
for k in self.wordDic:
print(f'{k}: {self.wordDic[k]}')
import ADictionary as dic
kTe = dic.KorToEng()
kTe.registWord('책', 'bok')
kTe.registWord('나비', 'butterfly')
kTe.registWord('연필', 'pencil')
kTe.registWord('학생', 'student')
kTe.registWord('선생님', 'teacher')
kTe.printWords()
kTe.updateWord('책', 'book')
kTe.printWords()
print(f'책: {kTe.searchWord("책")}')
print(f'나비: {kTe.searchWord("나비")}')
print(f'선생님: {kTe.searchWord("선생님")}')
kTe.removeWord("책")
kTe.printWords()
[KorToEng] registWord() : 책 to bok
[KorToEng] registWord() : 나비 to butterfly
[KorToEng] registWord() : 연필 to pencil
[KorToEng] registWord() : 학생 to student
[KorToEng] registWord() : 선생님 to teacher
책: bok
나비: butterfly
연필: pencil
학생: student
선생님: teacher
[KorToEng] updateWord() : 책 to book
책: book
나비: butterfly
연필: pencil
학생: student
선생님: teacher
[KorToEng] searchWord() : 책
책: book
[KorToEng] searchWord() : 나비
나비: butterfly
[KorToEng] searchWord() : 선생님
선생님: teacher
[KorToEng] removeWord() : 책
나비: butterfly
연필: pencil
학생: student
선생님: teacher
import random as rd
class Dice:
def init(self):
self.cNum = 0
self.uNum = 0
def setCnum(self):
print('[Dice] setCnum()')
self.cNum = rd.randint(1, 6)
# 여기서 사용자의 Cnum을 활용할 수 있게 한다?
def setUnum(self):
print('[Dice] setUnum()')
self.uNum = rd.randint(1, 6)
def startGame(self):
print('[Dice] startGame()')
self.setCnum()
self.setUnum()
def printResult(self):
print('[Dice] printResult()')
if self.cNum == 0 or self.uNum == 0:
print('주사위 숫자 설정 전 입니다.')
else:
if self.cNum > self.uNum:
print(f'컴퓨터 vs 유저 : {self.cNum} vs {self.uNum} => 컴퓨터 승!!!')
elif self.cNum < self.uNum:
print(f'컴퓨터 vs 유저 : {self.cNum} vs {self.uNum} => 유저 승!!!')
elif self.cNum == self.uNum:
print(f'컴퓨터 vs 유저 : {self.cNum} vs {self.uNum} => 무승부!!!')
import dice #
dc = dice.Dice() # 이 클래스를 생성하면 이 안에 스타트게임 함수 호출, 스타트게임을 호출하면 이 안에서 셋씨넘버, 셋유넘버를 다 호출해서 게임이 시작된다. 그리고 프린트 리졸트까지 출력하면 결과까지 다 볼 수 있다.
dc.startGame() # 이걸 실행시키면 난수가 발생해서 컴퓨터와 내가 주사위를 굴린 셈이 된다
dc.printResult() # 출력
[Dice] startGame()
[Dice] setCnum()
[Dice] setUnum()
[Dice] printResult()
컴퓨터 vs 유저 : 3 vs 3 => 무승부!!!
class Person:
def greeting(self):
print('Hello')
james = Person() # james 가 인스턴스가 된다. 메서드는 클래스가 아니라, 인스턴스를 통해 호출한다. / 메서드는 클래스 안에 있는 함수를 의미한다.
james.greeting()
class Person:
def init(self):
self.hello = '안녕하세요'
def greeting(self):
print(self.hello)
james = Person()
james.greeting()
class Person:
def init(self, name, age, address):
self.hello = '안녕하세요.'
self.name = name
self.age = age
self.address = address
def greeting(self):
print('{0} 저는 {1}입니다.' .format(self.hello, self.name))
maria = Person('마리아', '25', '서울시 서초구 반포동')
maria.greeting()
print(f'이름: {maria.name}')
print(f'나이: {maria.age}')
print(f'주소: {maria.address}')