목록이나 사전에는 7 일을 저장할 수 있지만 OOP에는 일반적으로 유용한 접근자를 제공하는 컨테이너 클래스를 정의하는 것이 있습니다. 대소 문자를 구별하지 않는 이름이나 숫자로 일주일의 요일을 지정할 수 있습니다 (일요일은 0으로 가정).
import datetime
class Day:
def __init__(self, name, todo_list):
self.name = name
self.todo_list = todo_list
class Week:
weekday_names = ('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday',
'Friday')
weekday_index = {name.lower():idx
for idx,name in enumerate(weekday_names)}
weekday_index.update({idx:idx for idx in range(7)})
def __init__(self):
self.days = [Day(name, []) for name in self.weekday_names]
def __getitem__(self, name_or_ord):
if isinstance(name_or_ord, str):
name_or_ord = name_or_ord.lower()
return self.days[self.weekday_index[name_or_ord]]
def __setitem__(self, name, day):
raise ValueError("Cannot set days in week")
week = Week()
week['Sunday'].todo_list.append('dinner with parents')
week['Monday'].todo_list.append('laundry')
print("Monday's tasks:",
', '.join(week['monday'].todo_list))
print("Today's tasks:",
', '.join(week[datetime.date.today().weekday()].todo_list))
실행중인 특정 오류가 있습니까? 또한, 두 번째 인수 (목록)를 괄호로 묶을 필요가 없습니다. – denvaar
@leaf : 아니요, 그는 아니에요. '(MonList = [],)'는'튜플 (tuple) '이 될 것입니다. 여기에 괄호는 쓸모가 없습니다. –
후행 쉼표는 하나의 항목 만있는 튜플을 나타냅니다. – denvaar