250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Iterator
- git #github #내일배움캠프
- vscode
- itertools
- WIL
- iterable
- with\
- gitignore
- 프로그래머스
- 내일배움캠프
- sql
- A태그
- 함수실행시간
- googlesheet
- 우선순위
- time()
- Display
- AI
- python
- Level1
- 함수성능평가
- 알고리즘
- AI 5기
- onClick
- target
- cte
- googleappscript
- venv
- position
- 가상환경
Archives
- Today
- Total
05의 개발 계발
[TIL] 230328 [Python] Class의 사용목적 과 list 응용 본문
728x90
TIL 학습목표
- Python 에서 Class를 사용하는 목적을 안다.
- Class와 list를 활용하여 변수 및 함수 중복을 줄일 수 있다.
1) 문제점 (Problem)
개인과제와 팀과제로 Text RPG 를 만들면서 Class를 사용하게 되었다.
하지만 if문과 while문에 지저분하게 중복된 변수와 함수들을 보면서 Class를 잘 사용하고 있는지 의문이 들었다.
그래서 Class를 사용하는 목적과 활용방법을 다시 생각하고, 탐색하고자 한다.
2) 시도해본 것들 (Try)
▶Class의 사용목적 | 참고자료
Class(클래스) : 함수와 변수를 포함하는 하나의 모듈로, 만들어둔 모듈과 같은 기능을 하는 객체를 생성할 수 있다. ex) 쿠키틀(클래스)과 쿠키(객체)
Class는 미리 만들어둔 변수와 함수를 호출할 수 있는 객체를 만듦으로써, 변수와 함수의 중복을 줄이는데에 목적이 있다.
▶list 응용
list 는 여러개의 요소(item)를 가지고 있다.
그리고 모든 타입의 데이터가 들어갈 수 있다.
즉, 클래스객체와 함수도 들어갈 수 있다.
아래와 같은 list사용법을 '입력값에 따른 실행함수 분류'에 적용해보자.
# 몬스터 리스트
monster = [
Monster("HTML", 100, 10),
Monster("CSS", 200, 20),
Monster("JS", 300, 30),
Monster("Python", 400, 40),
Monster("Algorithm", 500, 50),
]
# 랜덤으로 몬스터를 생성한다
random_monster = random.choice(monster)
3) 해결 (Solution)
list 를 활용하여 입력값에 따라 실행할 함수를 분류하였다.
# 동작을 입력받는다
action = msvcrt.getch()
if not action in [b"1", b"2", b"3", b"4", b"5"]:
print("\n정신차리세요! 용사님!")
continue
# 입력받은 action에 따라 action_choice 내의 함수가 실행
player.action_choice(random_monster, action)
▲ 실행 파일 ▲
#################공격선택######################
def action_choice(self, other, choice):
action = [
self.attack,
self.special_attack,
self.heal,
self.defend,
self.counter,
]
return action[int(choice) - 1](other)
▲클래스 파일▲
4) 알게 된 점 (Learnd)
list 안에 데이터 타입이 아닌 함수와 클래스 객체를 넣는 발상을 처음 알게 되었고, 앞으로 활용도가 많아 질 것 같다.
list 뿐만 아니라 dict의 활용도도 높을 것 같다. 아직 감이 오진 않지만, 알고리즘 문제를 더 풀면서 경험을 쌓아 가야겠다.
이론과 실습의 Gap을 줄여가도록 하자!
728x90
'TIL' 카테고리의 다른 글
[TIL] 230330 [VScode] 단축키 설정하기 - 터미널에서 python파일 실행 (2) | 2023.03.30 |
---|---|
[TIL] 230329 [Python] threading 모듈, Timer 사용 (0) | 2023.03.30 |
[TIL] 230327 [Python] import 사용법 - 파일불러오기 (0) | 2023.03.27 |
[TIL] 230324 [python] iterable & iterator & itertools 의 관계 (0) | 2023.03.24 |
[TIL] 230323 [python] .sort 와 sorted()의 차이 (Method 와 Function) (0) | 2023.03.23 |