SyntaxError: имя «y» используется перед глобальной переменной - PullRequest
0 голосов
/ 26 января 2020

Я писал этот код здесь:

import tkinter
canvas = tkinter.Canvas()
canvas.pack()

def ball():
    canvas.delete('all')
    canvas.create_oval(x-5, y-5, x+5, y+5)
    global y
    y = y+5
    if y<200:
        canvas.after(100, ball)

и получил это - имя ошибки "y" используется перед глобальной переменной

1 Ответ

1 голос
/ 26 января 2020

Вызов canvas.create_oval(x-5, y-5, x+5, y+5) ссылается на y, прежде чем позвонить global y. Переверните заказ, и вы должны быть в порядке:

def ball():
    global y # Could even be done a line later, but it's neater to have it upfront
    canvas.delete('all')
    canvas.create_oval(x-5, y-5, x+5, y+5)
    y = y+5
    if y<200:
        canvas.after(100, ball)
...