Database
라는 이름의 class를 구현해 주세요.
Database
클래스 내부에 다음의 속성(attribute)들을 선언해주세요.
name
: database의 이름size
: 저장할 수 있는 데이터의 max 사이즈. Size를 넘어서는 데이터를 저장할 수 없다.Database
클래스 내부에 다음의 메소드들을 구현해주세요.
insert
select
update
delete
insert
메소드는 self
외에 2
개의 parameter를 받습니다.
field
와 value
입니다.
Field
는 저장하고자 하는 데이터의 필드명이고 value
는 값입니다.
Field
와 value
는 내부적으로 dictionary
에 저장되어야 합니다.
insert
메소드는 다음 처럼 호출 할 수 있습니다.
# 객체 이름이 db 라는 가정하에
db.insert("name", "정우성")
insert
메소드는 특별한 return 값은 없습니다.
단, 만일 내부 dictionary의 총 사이즈가 Database
클래스의 size
속성보다 크면 더이상 새로운 값들을 저장하지 말아야 합니다.
select
메소드는 self
외에 1개의 parameter를 받습니다.
바로 field
입니다.
field
는 읽고자 하는 데이터의 필드명 입니다.
내부적으로 데이터를 저장하고 있는 dictionary에서 해당 field
에 해당하는 키와 연결되어 있는 값을 return 해주어야 합니다.
예를 들어, 이미 name
이라는 필드명으로 "정우성"
이라는 값을 저장했다고 한다면:
# 객체 이름이 db 라는 가정하에
db.select("name")
> "정우성"
이 되어야 합니다.
만일 해당 필드값으로 저정되어 있는 값이 없다면 None
을 return 해주세요.
self
외에 2
개의 parameter를 받습니다.
field
와 value
입니다.
이름 그대로 이미 저장되어 있는 값을 수정하는 메소드 입니다.
# 객체 이름이 db 라는 가정하에
db.update("name", "아이유")
만일 field
값에 해당하는 데이터가 저장되어 있지 않으면 아무것도 하지 않습니다.
그리고 특별한 return
값은 없습니다.
delete
메소드는 self
외에 1
개의 parameter를 받습니다.
field
입니다.
field
는 지우고자 하는 데이터의 필드명 입니다.
# 객체 이름이 db 라는 가정하에
db.delete("name")
만일 field
값에 해당하는 데이터가 저장되어 있지 않으면 아무것도 하지 않습니다.
그리고 특별한 return
값은 없습니다.
class Database:
def __init__(self, name, size):
self.name = name
self.size = size
self.database = {} # 빈 딕셔너리를 만든다.
def insert(self, field, value): #삽입 => 변수명[새로운키] = 새로운값
self.field = field
self.value = value
if len(self.database) < self.size: #self.size보다 삽입된 데이터 수가 많으면 추가되지 않음
self.database[self.field] = self.value
def select(self, field): # 읽기 => 변수명[키]
self.field = field
if self.field in self.database.keys(): # self.field 가 데이터베이스의 key에 있으면 읽기.
return self.database[self.field]
else:
return None
def update(self, field, value): # 수정 => 변수명[수정할키] = 수정값
self.field = field
self.value = value
if self.field in self.database.keys():
self.database[self.field] = self.value
def delete(self, field): #삭제 => del 변수명[키]
self.field = field
if self.field in self.database.keys():
del self.database[self.field]
class Database:
def __init__(self, name, size):
self.name = name
self.size = size
self.database = {} # 빈 딕셔너리를 만든다.
def insert(self, field, value):
if len(self.database) < self.size:
self.database[field] = value
def select(self, field):
if field in self.database:
return self.database[field]
else:
return None
def update(self, field, value):
if field in self.database:
self.database[field] = value
def delete(self, field):
if field in self.database:
del self.database[field]
빈 딕셔너리를 만들어야 한다는 걸 모르고 그냥 입력만 받았다. 딕셔너리를 만들어야 한다는 것과 딕셔너리 자료형 읽기, 수정, 삭제, 삽입 함수만 알면 바로 해결!