Доступ к аттрибутам класса после выполнение метода нажатия клавиши Python Tkinter
Имеется класс MainMenu в котором находится интерфейс окна и кнопки для которых есть методы при нажатии на них в которых происходит изменение атрибуттов класса, при создании объекта и попытке вытащить эти аттрибуты, возвращается значение которые было при инициализации, а не после вызова метода нажатия кнопки так как изначально кнопка не была нажата и значение уже было передано.
from tkinter import *
import random
from tkinter import messagebox as mb
root = Tk()
root.title('Хрестики нулики')
welcome_window = Toplevel(root)
welcome_window.title("welcome")
root.withdraw()
#######################
class MainMenu:
def __init__(self,window):
self.window = window
title = Label(self.window,text = 'Хрестики-нулики', font=("Comic Sans MS",24,'bold'))
title.pack()
choose = Label(self.window,text = 'Виберіть режим гри', font=("Comic Sans MS",16))
choose.pack()
self.window.geometry('600x400')
two_players = Button(self.window,text= 'Два гравця')
bot = Button(self.window,text= 'Компьютер')
line = Button(self.window,text= 'Лінія')
coins = Button(self.window,text= 'Очки')
two_players.place(x= 360, y = 140)
bot.place(x= 180, y = 140)
line.place(x= 360, y = 180)
coins.place(x= 180, y = 180)
self.players = 1
self.mode = 'line'
two_players.bind("<Button-1>",self.two_players)
line.bind("<Button-1>",self.line)
coins.bind("<Button-1>",self.points)
def two_players(self,event):
self.players = 2
print(self.players)
def points(self,event):
self.mode = 'points'
self.window.destroy()
root.deiconify()
def line(self,event):
self.mode = 'line'
self.window.destroy()
root.deiconify()
def returning(self):
return self.players, self.mode
menu = MainMenu(welcome_window)
players,mode = menu.returning()
При попытке вернуть self.players возвращается 1 , хотя необходимо 2. Как получить значение аттрибута после выполнения метода two_players?