Сочетания клавиш Lubuntu 16.04 ctrl+alt+down и alt+shift+down ступают на мои сублимированные текстовые контурные карты.
Существует ли способ отключить эти сочетания клавиш?
Если Вы смотрите на итераторы определения PEP234, это говорит:
1. An object can be iterated over with "for" if it implements
__iter__() or __getitem__().
2. An object can function as an iterator if it implements next().
__getitem__
предшествует протоколу итератора и был в прошлом единственный способ сделать вещи повторяемыми. По сути, это все еще поддерживается как метод итерации. По существу протокол для повторения:
Проверьте на __iter__
метод. Если это существует, используйте новый итеративный протокол.
Иначе попытайтесь звонить __getitem__
с последовательно большими целочисленными значениями, пока это не повышает IndexError.
(2) используемый, чтобы быть единственным способом сделать это, но имело недостаток, что он принял больше, чем было необходимо для поддержки просто повторения. Для поддержки повторения необходимо было поддерживать произвольный доступ, который был намного более дорогим для вещей как файлы или сетевые потоки, где продвижения были легки, но идущий назад потребует хранения всего. __iter__
позволенное повторение без произвольного доступа, но так как произвольный доступ обычно позволяет повторение так или иначе, и потому что повреждение обратной совместимости было бы плохо, __getitem__
все еще поддерживается.
Специальные методы такой как __getitem__
добавьте специальные поведения к объектам, включая повторение.
http://docs.python.org/reference/datamodel.html#object.getitem
"поскольку циклы ожидают, что IndexError будет повышен, чтобы недопустимые индексы позволили надлежащее обнаружение конца последовательности".
Повысьте IndexError для передачи сигналов о конце последовательности.
Ваш код в основном эквивалентен:
i = 0
while True:
try:
yield object[i]
i += 1
except IndexError:
break
Где объект - то, чего Вы выполняете итерации в для цикла.
Это так по историческим причинам. До Python 2.2 __ getitem __ был единственный способ создать класс, который мог быть выполнен с помощью итераций с для цикла. В 2,2 __ проход __ был добавлен протокол, но сохранить назад совместимость __ getitem __ все еще работает в на циклы.
Поскольку cb[0]
совпадает с cb.__getitem__(0)
. См. документацию Python относительно этого.
Попытайтесь смотреть на это: https://help.ubuntu.com/community/Lubuntu/Keyboard#Create_New_Keyboard_shortcuts. Если можно добавить сочетания клавиш, необходимо смочь удалить их также похожим способом.