팀 프로젝트 마감
딕셔너리의 중요성
딕셔너리안에, 또 딕셔너리를 활용하여 if문이 많이 필요한 알고리즘을 유동적이고 간략하게
또 수정이 용이하게 만들 수 있다.self.actions = { "1": { "verbose": "일반 공격", "action": self.normal_attack, } }
- 클래스의 메소드로, 상속받은 클래스에서는 key값을 증감시켜 더 많이 구현하기 쉬우며
key : value의 value안에 딕셔너리를 추가하여 자료 정리의 용이성과 직관적인 코드를 구현할 수 있다.
깊은 복사
for monster in monsters[::]: if monster.current_hp <= 0: monsters.remove(monster)
- 인덱스를 참조하며 리스트의 요소를 제거한다면 오류가 발생하겠지만.
[::]를 통한 깊은 복사를 통해 오류를 방지할 수 있다.
for문의 반복자를 사용하지 않을땐 _를 사용한다.
for _ in range(arr):
import* 을 사용하는 습관은 자칫 데이터를 낭비하는 결과를 초래할 수 있다.
바뀌지 않는값이라면, 상수값으로 설정하라.
코드의 안정성을 위해, 디폴트값을 잘 고려해야 한다.
데코레이터 메소드는, 클래스 내에서 선언하면 안된다.
팀 프로젝트를 진행하며, 마감하기위해 난해한 코드를 간략화하고 축소 시키기 위해 여러 고민이 많았다.
# dictionary형태로, q,w,e,r의 value값을 설정한다.
key_map = {"q":1,"w":2,"e":3,"r":4}
while True :
#입력 받은 값을, 소문자건 대문자건, lower함수를 통해 소문자로 변경한다.
key = keyboard.read_key().lower()
#입력 받은 값이, 딕셔너리에 있다면 key값에 맞는 value 를 반환한다.
if key in key_map:
return key_map[key]