python全局变量的问题

2025-03-23 05:52:03
推荐回答(1个)
回答1:

感觉还是你的理解与编程规范问题。先说明一下,变量分全局的与局部的。全局的变量如果想引用通常会使用global参数。局部变量如果与全局变量重名,则局部的覆盖全局的。

所以你的函数read_data的形参(也是局部变量)把全局的覆盖了,就需要return。return (D0,S0,D1,S1,list)

但是在button里你使用的是lambda。应该单独给它一个函数。
def button1click():
global D0,S0,D1,S1,list

D0,S0,D1,S1,list=readdata(D0,S0,D1,S1,list)
这样就可以了。
b1=Button(app,text="读取数据",command=button1click).pack()
这样就可以了。

这个代码我没有测试过。不过我建议你的app用类重载的方法去实现。
现在你这样写,不是很灵活。所以你定义函数就不太方便。

另外,好象不能用list来作为变量名。它似乎是一个关键字。