전역변수를 수정할 수 있게 해주는 global 키워드와는 또다른
globals()함수
아직 이해가 덜 되어 검색을 해보니 변수명 지정에 자동화가 필요할 때 쓰는 함수이다.
g1Price = 1200; g2Price = 1000; g3Price = 800;
g4Price = 2000; g5Price = 900;
for g in gcsDic.keys():
totalPrice += globals()[f'{g}Price'] * gcsDic[g]
위에 예제는 갯수별 가격의 총합을 위해
globals()이 변수명을 지정해준 것을 for문이 돌며 호출해주는 것.
globals()[f'{g}Price'] 변수인 g1Price,g2Price,…,g5Price를 호출해준 것이다.
print로 찍어서 보면
유효성 검사를 raise를 활용하여 해결
class EmptyDataException(Exception):
def __init__(self, i):
super().__init__(f'{i} is empty.')
def checkInputData(n, m, p, a, ph):
if n == '':
raise EmptyDataException('name')
elif m == '':
raise EmptyDataException('mail')
elif p == '':
raise EmptyDataException('password')
elif a == '':
raise EmptyDataException('addres')
elif ph == '':
raise EmptyDataException('phone')
class RegistMember():
def __init__(self,n, m, p, a, ph):
self.m_name = n
self.m_mail = m
self.m_pw = p
self.m_addr = a
self.m_phone = ph
print('Membership complete!!')
def printMemberInfo(self):
print(f'm_name: {self.m_name}')
print(f'm_mail: {self.m_mail}')
print(f'm_pw: {self.m_pw}')
print(f'm_addr: {self.m_addr}')
print(f'm_phone: {self.m_phone}')
오늘은 중급 문제풀이 예외처리 ~ 텍스트파일까지의 수업이였다.
문제풀이는 예제를 따라하고 동작하는건 재밌는데, 가야할 길이 멀다보니
아쉬움이 진하게 남는다.
위에 다시보기로 회원가입 공백 유효성을 넣은 건 뭔가 복잡하게 생각했던 코드를
의외로 단순하게 ''처리 하나로 끝냈다는 것과 개념만 이해하고 넘어갔던 raise의 활용.
역시 백문이 불어일타 ⌨⌨⌨⌨⌨