일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- django westagram
- JWT
- Django
- westagram
- typescript
- CORS
- 호이스팅
- Jest
- 자바스크립트
- OSI7계층
- 프로미스
- 장고초기세팅
- TypeError: this.boardRepository.createBoard is not a function
- 트랜잭션
- bcrypt
- 실행 컨텍스트
- manytomanyfield
- crud2
- on_delete
- javascript
- status code
- docker
- async/await
- nodeJS
- wecode
- pm2
- rebase
- node
- 노드
- 스코프
- Today
- Total
될때까지
((Python)) Replit 55. Class 본문
Assignment
Class 를 직접 구현해 보겠습니다. Database 라는 이름의 class를 구현해 주세요.
Database 클래스 내부에 다음의 속성(attribute)들을 선언해주세요.
- name : database의 이름
- size : 저장할 수 있는 데이터의 max 사이즈. Size를 넘어서는 데이터를 저장할 수 없다.
Database 클래스 내부에 다음의 메소드들을 구현해주세요.
- insert
- select
- update
- delete
각 메소드들에 대한 설명은 아래와 같습니다.
Insert
insert 메소드는 self 외에 2개의 parameter, field와 value 를 받습니다.
Field 는 저장하고자 하는 데이터의 필드명이고 value는 값입니다.
Field 와 value는 내부적으로 dictionary에 저장되어야 합니다.
insert 메소드는 다음 처럼 호출 할 수 있습니다.
insert 메소드는 특별한 return 값은 없습니다.
단, 만일 내부 dictionary의 총 사이즈가 Database 클래스의 size 속성보다 크면 더이상 새로운 값들을 저장하지 말아야 합니다.
Select
select 메소드는 self 외에 1개의 parameter, field 를 받습니다.
field 는 읽고자 하는 데이터의 필드명 입니다.
내부적으로 데이터를 저장하고 있는 dictionary에서 해당 field에 해당하는 키와 연결되어 있는 값을 return 해주어야 합니다.
예를 들어, 이미 name이라는 필드명으로 "정우성" 이라는 값을 저장했다고 한다면:
이 되어야 합니다.
만일 해당 필드값으로 저정되어 있는 값이 없다면 None 을 return 해주세요.
Update
self 외에 2개의 parameter인 field와 value를 받습니다.
이름 그대로 이미 저장되어 있는 값을 수정하는 메소드 입니다.
만일 field값에 해당하는 데이터가 저장되어 있지 않으면 아무것도 하지 않습니다.
그리고 특별한 return 값은 없습니다.
Delete
delete 메소드는 self 외에 1개의 parameter, field 를 받습니다.
field 는 지우고자 하는 데이터의 필드명 입니다.
만일 field값에 해당하는 데이터가 저장되어 있지 않으면 아무것도 하지 않습니다.
그리고 특별한 return 값은 없습니다.
class Database:
def __init__(self, name, size):
# 여기에 코드를 작성해주세요.
self.name = name
self.size = size
self.db = {} # 이걸 작성해야 풀 수 있는 문제다!!!
def insert(self, field, value):
# 여기에 코드를 작성해주세요.
# 만일 내부 dictionary의 총 사이즈가 database 클래스의 size 속성보다 크면 더이상 새로운 값들을 저장하지 말아야 한다.
# => 이말인 즉슨, 내부 dictionary의 총 사이즈가 database 클래스의 size 속성보다 작으면 새로운 값들을 저장한다.
if len(self.db) < self.size:
self.db[field] = value
def select(self, field):
# 여기에 코드를 작성해주세요.
# 내부적으로 데이터를 저장하고 있는 dictionary에서 해당 field에 해당하는 키와 연결되어 있는 값을 리턴해주어야 한다.
# 만일 해당 필드값으로 저정되어 있는 값이 없다면 None 을 리턴한다.
if field in self.db:
return self.db[field]
else:
return None
def update(self, field, value):
# 여기에 코드를 작성해주세요.
# 만일 field값에 해당하는 데이터가 저장되어 있지 않으면 아무것도 하지 않는다.
# 특별한 return 값은 없다.
# 이말인 즉슨, field값에 해당하는 데이터가 저장되어 있으면 수정한다.
if field in self.db:
self.db[field] = value
def delete(self, field):
# Field 는 지우고자 하는 데이터의 필드명이다.
# field값에 해당하는 데이터가 저장되어 있지 않으면 아무것도 하지 않는다.
# 특별한 return 값은 없다.
# 이말인 즉슨, field값에 해당하는 데이터가 저장되어 있으면, 삭제한다.
if field in self.db:
del self.db[field]
문제해결을 하기 위해선 문제를 잘 읽어야하는데 레플릿을 풀다보니 문제를 이해하는 능력이 떨어지는 것 같다ㅠㅠ 위의 문제는 __init__안에 딕셔너리를 생성했으면 해결되는 문제였다..!!
'프로젝트 > wecode' 카테고리의 다른 글
((Python)) 데코레이터 끝내버리겠다. (0) | 2022.06.24 |
---|---|
((Python)) 추가 개념정리 (0) | 2022.06.24 |
((Python)) Set vs Dictionary, List vs Tuple (0) | 2022.06.23 |
((Python)) Function Parameters (0) | 2022.06.22 |
((Python)) data type, variable, math expressions (0) | 2022.06.22 |