Python 如何将全局变量的值传递给tkinter中的所有类?

Python 如何将全局变量的值传递给tkinter中的所有类?,python,python-3.x,class,tkinter,global-variables,Python,Python 3.x,Class,Tkinter,Global Variables,我正在开发一个ATM模拟tkinter应用程序。首先,我创建了帐号、pin码等数组来存储预定义的值。然后,在开始页上从用户处获取账号和pin号后,我将索引值存储在全局变量x中,以跟踪余额等其他信息。但我无法在每个类中访问此全局变量的值。它默认设置为-1,在我更改输入值的索引后,它仍然是-1。这是全局变量和数组结构: accountNo = ['xyz','abc','pqr'] pinNo = ['1234','7893','4423'] current_balance = [1000,2000

我正在开发一个ATM模拟tkinter应用程序。首先,我创建了帐号、pin码等数组来存储预定义的值。然后,在开始页上从用户处获取账号和pin号后,我将索引值存储在全局变量x中,以跟踪余额等其他信息。但我无法在每个类中访问此全局变量的值。它默认设置为-1,在我更改输入值的索引后,它仍然是-1。这是全局变量和数组结构:

accountNo = ['xyz','abc','pqr']
pinNo = ['1234','7893','4423']
current_balance = [1000,2000,5000]
phnNo = ['1235679870','4563798027','6783409820']
Name = ['alice','bob','candice']
x = -1
y = -1
现在,在开始页面上,在从用户获得输入后,我将全局变量x和y的值更改为:

def check_password():
        account = my_password.get()
        pin = my_pin.get()

        global x
        global y

        x = accountNo.index(account)
        y = pinNo.index(pin)
        if account in accountNo and pin in pinNo:
            if x==y:
               my_password.set('') 
               my_pin.set('')
               incorrect_password_label['text']=''
               controller.show_frame('MenuPage')

            else:
                incorrect_password_label['text']='Invalid Pin or Account No.'
               
        else:
            incorrect_password_label['text']='Incorrect Password'
            
    enter_button = tk.Button(self,
                                                 text='Enter',
                                                 command=check_password,
                                                 relief='raised',
                                                 borderwidth = 3,
                                                 width=40,
                                                 height=3)
    enter_button.pack(pady=10)

    incorrect_password_label = tk.Label(self,
                                                                    text='',
                                                                    font=('orbitron',13),
                                                                    fg='black',
                                                                    bg='#A5A3A3',
                                                                    anchor='n')
    incorrect_password_label.pack(fill='both',expand=True)
这是tkinter应用程序的主要类的结构:

class SampleApp(tk.tk):
定义初始化(self,*args,**kwargs):
tk.tk.\uuuuu初始化(self,*args,**kwargs)
self.shared_data={'Balance':tk.IntVar()}
容器=tk.框架(自身)
container.pack(side=“top”,fill=“both”,expand=True)
container.grid_rowconfigure(0,权重=1)
container.grid\u column配置(0,权重=1)
self.frames={}
对于F in(起始页、菜单页、取款页、存款页、余额页、更改页、详细信息):
页面名称=F.\u名称__
帧=F(父级=容器,控制器=自身)
self.frames[页面名称]=框架
#将所有页面放在同一位置;
#在堆叠顺序顶部的那个
#将是可见的。
frame.grid(行=0,列=0,sticky=“nsew”)
自我展示框架(“起始页”)
def显示框(自身,页面名称):
''显示给定页面名称''的框架'
frame=self.frames[页面名称]
frame.tkraise()
现在,我想在其他类中也使用这个变量x,但是这个值在全局范围内没有变化,并且在check_password()函数之外的任何地方都显示-1我只想在更改全局变量x的值后,随时随地访问它。我该怎么做