728x90
반응형
Today I Learned
어떤 문제가 있었는지
이번 팀 과제를 하면서 몇가지 아쉬운 코드들이 있었다
확실히 저번 개인 과제를 할 때 보다는 코드정리에 더 신경을 많이 썼지만
이번에 튜터님의 강의를 들어보니 더 개선할 부분들이 많았다
내가 시도해 본 것들
def job_select(self):
while True:
print('1 : 전사, 2 : 마법사, 3 : 궁수, 4 : 도적')
self.job = input('직업을 선택해주세요 : ')
if self.job in self.job_dict.keys():
user = User(
self.name,
1,
self.job_dict[self.job]['hp'],
self.job_dict[self.job]['mp'],
self.job_dict[self.job]['power'],
self.job_dict[self.job]['magic_power'],
self.job_dict[self.job]['avoid'],
self.job_dict[self.job]['job'],
)
break
else:
print('올바른 값을 입력해주세요')
continue
print(f'당신의 직업은 {self.job_dict[self.job]["job"]} 입니다')
return user
user를 정의 할 때 이렇게 반복되는 부분을 변경
어떻게 해결 했는지
def job_select(self):
while True:
print('1 : 전사, 2 : 마법사, 3 : 궁수, 4 : 도적')
self.job = input('직업을 선택해주세요 : ')
if self.job in self.job_dict.keys():
user = User(
self.name,
1,
self.job_dict.values()
)
break
else:
print('올바른 값을 입력해주세요')
continue
print(f'당신의 직업은 {self.job_dict[self.job]["job"]} 입니다')
return user
self.job_dict.values()로 깔끔하게 정의 할 수 있었다.
다만 주의할 점은 User에 파라메터들이 job_dict.values와 순서가 맞아야한다.
무엇을 새롭게 배웠는지
딕셔너리의 keys와 values, items함수의 사용법을 배웠다.
그동안은 별 생각 없었는데 python의 dictionary는 활용법이 무궁무진하다
특히 복잡한 if문을 줄이는데 도움이 많이되니 사용법을 최대한 익혀야겠다
추가로 getattr, setattr을 사용한 조들도 보였는데 한번 제대로 알아보고 포스팅 해야겠다.
728x90
반응형