Не работает кнопка tkinter

from tkinter import *
from tkinter import ttk

def aaa():
    
    window = Tk()
    window.geometry('300x200')
    window.title('TK')

    tab_control = ttk.Notebook(window)
    tab1 = ttk.Frame(tab_control)  
    tab2 = ttk.Frame(tab_control)
    tab_control.add(tab1, text = '1')
    tab_control.add(tab2, text = '2')
    tab_control.pack(expand = 1, fill = 'both')


    button = Button(text = 'BUY',command = lambda : ab(first,second),padx = 5,pady = 10).pack()


def ab(first,second):
    
    window = Tk()
    window.geometry('400x400')
    window.title('W')
  
    
    select = first.curselection()
    for i in select:
            second.insert(END, first.get(i))
            select = list(select)
            select.reverse()

    for i in select:
            first.delete(i)
    
    sclad = open("test.txt","r",encoding = "utf-8")
    shop = Listbox(selectmode = EXTENDED)
    shop.pack(side = LEFT)
        
    for i in sclad:
            shop.insert(END,i)
                
            goods = Listbox(selectmode = EXTENDED)
            goods.pack(side = RIGHT)

            f = Frame()
            f.pack(side = LEFT)
            
    Button(f, text = ">>>",command = lambda i = shop, j = goods:buy(i,j)).pack()
    Button(f, text = "<<<",command = lambda i = goods, j = shop:buy(i,j)).pack()  
    
if __name__ == '__main__':
    aaa()
NameError: name 'first' is not defined

Ответы (1 шт):

Автор решения: GrAnd

Ну так у вас что-то не видать переменных first и second в функции aaa() которые вы пытаетесь передать как аргументы в ab(first,second) в обработчике нажатия кнопки.

→ Ссылка