У меня есть виджет OptionMenu, который обычно заполняется списком (например, списком курсов).
self.var_course = StringVar(self.add_window)
if len(courses) > 0:
self.var_course.set(self.courses.keys()[0])
course_drop = OptionMenu(self.add_window, self.var_course, *self.courses).\
grid(row=0, column=1)
Button(self.add_window, text="New", height=1, width=1).\
grid(row=0, column=2)
Иногда этот список будет пустым, потому что пользователь не добавил ни одного класса. Это вызывает ошибку при создании course_drop.
File "blah/blah/blahblablah", line 32, in blah
course_drop = OptionMenu(self.add_window, self.var_course, *self.courses).
\TypeError: __init__() takes at least 4 arguments (3 given)
Когда в словаре есть значения, код работает нормально, однако, когда он пуст, я получаю указанную выше ошибку. Я предполагаю, что пустой словарь (self.courses) не рассматривается как переменная, и поэтому передается недостаточно. Как я могу обойти это?