Одна функция не видит переменную другой

from tkinter import messagebox
from threading import Thread
import os
import threading
import aminofix

client = aminofix.Client()



def piar():
    
    frame2 = Frame(calc, bg='black')
    frame2.place(relwidth=1, relheight=1)
    textt3 = Label(frame2, bd=7, text='Бот сделан Славкой V1.0', bg='blue') #Кем создан бот?
    textt3.pack() #пакуем. ыыы
    
    textt4 = Label(frame2, bg='black', text='')
    textt4.pack()
    
    btn5 = Button(frame2, bg='black', fg='gray', text = 'Тебе дано несколько\n полей ввода. В первое\n введи эмайл от аккаунта,\nво второе пароль от аккаунта,\nв третье ссылку на сообщество,\nгде будет пиар,\nв четвёртое сообщение')
    btn5.pack()
    
    def text():
        textt5 = Label(frame2, text='', bg='black')
        textt5.pack()
        
    text()
    
    entry1 = Entry(frame2, bg='black', fg='gray', bd=10)
    entry1.pack()
    
    text()
    
    entry2 = Entry(frame2, bg='black', fg='gray', bd=10)
    entry2.pack()
    
    text()
    
    entry3 = Entry(frame2, bg='black', fg='gray', bd=10)
    entry3.pack()
    
    text()
    
    entry4 = Entry(frame2, bg='black', fg='gray', bd=10)
    entry4.pack()
    
    btn6 = Button(frame2, text='ВВЁЛ', bg='black', fg='gray', command=piar2)
    btn6.pack()
    

def piar2():

    email = entry1.get()
    password = entry2.get()
    comid = entry3.get()
    slavka = entry4.get()
    
    client.get_from_code(comid).comId
        
    client.login(email, password)
    client.headers["Content-Type"] = "application/json"
    sb=aminofix.SubClient(comId=comid)
    onl =   sb.get_online_users(size=2000).userId
    sb.start_chat(userId=onl,message=slavka, asWeb=True)
    pass
    messagebox.showinfo(title='Ура!', message='Пиарим!')
    

def str2():

    frame1 = Frame(calc, bg='black')
    frame1.place(relwidth=1, relheight=1)
    textt1 = Label(frame1, bd=7, text='Гайд сделан Славкой V1.0', bg='blue') #Кем создан бот?
    textt1.pack() #пакуем. ыыы
    
    textt2 = Label(frame1, text='', bg='black')
    textt2.pack()
    
    btn3 = Button(frame1, text='Этого бота сделал мой друг,\n я же создал графический\nдизайн для него.\n\n1. Не сливать\n2. Не продавать\n3. Удачного пользования!', bd=20, fg='gray', bg='black')
    btn3.pack()
    
    btn4 = Button(frame1, text='ГОТОВ', bd=10, fg='black', bg='gray', command=piar)
    btn4.pack(side='bottom')
    
    


calc = Tk()

calc['bg'] = '#FFFFFF' #цвет приложения
calc.title('CalcSlavka') #название приложения
calc.geometry('1820x1440')

canvas = Canvas(calc, height=300, width=250)
canvas.pack()

frame = Frame(calc, bg='black')
frame.place(relwidth=1, relheight=1)

def guide():
    textt = Label(frame, bd=7, text='Гайд сделан Славкой V1.0', bg='blue') #Кем создан бот?
    textt.pack() #пакуем. ыыы
    
guide()

teext = Label(frame, text='', bg='black')
teext.pack()

btn1 = Button(frame, text='Привет! Меня зовут Слава.\n Как дела? Ты попал на моего пиар-бота!\n Поздравляю.\n Бот может пиарить в одном/во всех соо!\n А также в общие чаты/приватками/в лс!\nПосле того, как прочтёте текст,\nнажмите на кнопку ГОТОВ.\nЕсли я узнаю, что кто-то слил\nэтого бота, буду расстреливать.\nПо любым вопросам обращаться\nк автору. TG: @Yukich06 , канал в TG:\n @ScriptsSlavy \nНе пиарьте в популярных сообществах\nс основы!',bd=20, width=50, height=15, bg='black', fg='gray')
btn1.pack()

btn2 = Button(frame, text='след. Страница (1/2)', fg='black', bg='gray', bd=10, command=str2)
btn2.pack(side='bottom')



calc.mainloop()

>Вот, функция piar2() не видит переменные функции piar()

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

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

Вы недостаточно подробно описали проблему, однако возможно вам поможет использование глобальной переменной.

def chest_with_sword():
    global chest
    chest = 'rock'

def put_sword(chest):
    chest += ' sword'
    print(chest)

chest_with_sword()
put_sword(chest)

Я положил в 1 переменой в сундук камень, во второй я доложил меч. Что бы переменная из 1 функции видела вторую. Я объявил её через global

вывод:

rock sword
→ Ссылка