>>> a = [1, 2, 3, 4, 5, 6]
>>> z = [(a[x], a[x+1]) for x in range(0, len(a)-1)]
>>> z
[(1, 2), (2, 3), (3, 4), (4, 5), (5, 6)]
# Replacing it with the test
>>> z = [(a[x] == a[x+1]) for x in range(0, len(a)-1)]
>>> z
[False, False, False, False, False]
>>> if False in z : Print "All elements are not equal"
После некоторого вмешательства я обнаружил, что изображение правильно отображается при сохранении в переменной GUI, то есть с помощью self
self.gif1 = PhotoImage(file='1.gif')
self.canvas.create_image(0, 0, image=self.gif1, anchor=NW)
Я понятия не имею, почему, но это работает, в то время как именование переменной просто gif1
(или любое другое имя), без self
, нет. Протестировано как в коде, так и в минимальном примере.
Update: Как отметил @Bryan, сборщик мусора предоставляет экземпляр PhotoImage
, когда __init__
заканчивается. Вы должны сохранить ссылку на экземпляр, выходящий за рамки конструктора, например. используя self
или global
. Учитывая эту проблему, лучше всего создать dict
, сохранив изображения, используя имена карточек в качестве ключей.