我在两个单独的类中访问全局声明的变量时遇到问题。这是一个kivy应用程序,它使用pandas作为后端支持。在
下面是全局变量raw_data的初始化,以及它最初的修改位置(在show_raw_data函数中):# original dataframe
raw_data = None
class IntroScreen(Screen):
def __init__ (self, **kwargs):
super (IntroScreen, self).__init__(**kwargs)
self.preview_screen_layout.add_widget(Button(text="View Raw Data", on_release=self.goto_raw_data))
# switch to preview screen and show raw data when import is clicked
def show_raw_data(self, *args):
global file_path_list
global raw_data
try:
# check input is correct
if ".xlsx" in file_path_list["orig_data"]:
raise ValueError
else:
# open csv file to display and display it
raw_data = pd.read_csv(file_path_list["orig_data"])
dfgui.show(raw_data)
# move to next screen
self.manager.current = 'preview_screen'
下面是我尝试访问的地方,以便能够显示使用pandas读取的数据:
^{pr2}$
但是我的问题是在PreviewScreen类中,访问goto_raw_data中的global raw_data工作得非常好,raw_data包含pandas数据帧,但是当访问__init__中的同一个全局变量时,它仍然初始化为None,就像在原始声明中一样。在
在我的init函数中是否有什么奇怪的事情阻止了全局变量的填充?我在想编译器读取类的顺序,但除此之外,我什么都想不出来了。在
有没有一种方法可以让我访问__init__中的全局变量,还是只能在定义的函数中访问。在
谢谢大家的帮助!在