Python выдает ошибку как будто я использовал переменную до того как я дал ей значение, но это не так

Рейтинг: 0Ответов: 1Опубликовано: 18.04.2023

Я пишу программу которая бы выводила на экран файл в нужной мне папке и их содержимое. Вот код с ошибкой:

from tkinter import *
from tkinter import ttk
import os

def TFN():
    GNFN = CN.get()
    print(GNFN)

FIN = []
GNFN = ""
FTV = ""
F = "" 
LY = 30

root = Tk()
root.title("FILE READER")
root.geometry("2500x1000")

canvas = Canvas(bg="white", width=2500, height=1000)
canvas.pack(anchor=CENTER, expand=1)



def START():   
    canvas.delete(SBID)
    directory = 'D:/Python files'
    for filename in os.listdir(directory):
        f =  filename
        FIN.append(f)
        canvas.create_text(400, LY, font="Arial 55", anchor=NW, text=f, fill="#004D40")
        LY = LY + 20
    AB = ttk.Button(text="ADD/OPEN FILE", command=ADD_FILE)
   ABID = canvas.create_window(100, 100, anchor=NW, window=AB, width=300, height=800)

Python выдает следующую ошибку:

line 30, in START
canvas.create_text(400, LY, font="Arial 55", anchor=NW, text=f, fill="#004D40")
UnboundLocalError: local variable 'LY' referenced before assignment

Я не понимаю что делать. В коде ясно указано что я указал LY = 30 и он все равно пишет мне что я это не сделал. Помогите.

Ответы

▲ 0Принят

Пишет, что переменная локальная для данной функции, и она действительно не задана. Если вам нужна та же самая LY, что описана снаружи, то пишите в функции

global LY

или используйте её в качестве аргумента функции или сделайте полем класса, если будете оформлять класс.