Я «неофит питона» и пытаюсь понять внутреннюю работу словарного типа. Прошлой ночью я пытался использовать ее в качестве управляющей структуры (то есть оператора switch) для ввода с клавиатуры в программе openGL.
Проблема заключалась в том, что по какой-то причине словарь продолжал оценивать ВСЕ случаи (два в данном случае) вместо одного из нажатых клавиш.
Вот пример кода:
def keyboard(key):
values = {
110: discoMode(),
27: exit()
}
values.get(key, default)()
Я потратил час или больше вчера вечером, пытаясь найти ответ на вопрос, почему оценивается каждый «случай», у меня есть несколько идей, но я не смог четко найти ответ на вопрос «почему».
Значит, кто-нибудь будет любезен объяснить мне, почему, когда я нажимаю клавишу 'n' (представление ascii равно 110), этот фрагмент кода также оценивает запись под 27 (клавиша ESC)?
Прошу прощения, если эта тема была избита до смерти , но я посмотрел и не смог легко найти четкий ответ (возможно, я пропустил его).
Спасибо.