код tkinter, выдающий «SyntaxError: недопустимая цель для аннотации»

#python #tkinter

#python #tkinter

Вопрос:

Я запускаю скрипт отсюда:

 from tkinter import *
defshowval(): print (sli1.get())
parent = Tk()
parent.geometry("500x500")
sli1 = Scale(parent, from_=10, to=100, tickinterval=10, orient=HORIZONTAL, bg = "RED")
sli1.place(relx=0.15,rely=0.06,relwidth=10)
sli1.pack()
Button(parent, text='click me !!', command=showval).pack()
mainloop()
 

используется Python 3.7.6 на Spyder, а tk — версия 8.6.

Сценарий дает мне это:

 SyntaxError: illegal target for annotation
 

Не понимая этой ошибки, я попытался изменить серверную часть — Tkinter, Qt4, Qt5 и каждый раз перезапускать консоль.

Комментарии:

1. Какое отношение заголовок имеет к вопросу? В заголовке упоминается одна ошибка, в вопросе упоминается другая, и ни один из них не генерируется опубликованным вами кодом.

2. defshowval(): print (sli1.get()) должно быть def showval(): print(sli1.get()) . Также вызов place() and pack() вместе бессмыслен, так как pack() переопределяет place() эффект. Код не будет выдавать AttributeError упомянутое в вопросе.

3. @BryanOakley Я скопировал неправильную ошибку. Исправлено сейчас.

Ответ №1:

Исключение вызвано строкой:

 defshowval(): print (sli1.get())
 

Это должно быть:

 def showval():
    print(sli1.get())
 

Также вызов place() и pack() включение sli1 бессмысленны, поскольку более поздний переопределит предыдущий. Выберите любой из них.