Python 在不同类的两个文件中携带一个变量
我想在用户登录后将变量user传递到另一个文件,该文件将填充或传递该用户变量,以便在SQL语句中使用它Python 在不同类的两个文件中携带一个变量,python,class,methods,static,global,Python,Class,Methods,Static,Global,我想在用户登录后将变量user传递到另一个文件,该文件将填充或传递该用户变量,以便在SQL语句中使用它 def ViewScore(self, event): root = Tk() root.title("You last 5 attempts for this topic") user = user_management.getuser() app = UserScore(root) root.mainloop() 变量user可以工作,我使
def ViewScore(self, event):
root = Tk()
root.title("You last 5 attempts for this topic")
user = user_management.getuser()
app = UserScore(root)
root.mainloop()
变量user可以工作,我使用print stations对它进行了测试,但是我需要将它保存到UserScore.py文件并运行SQL语句
sql = 'SELECT * FROM scores where username="%s" and topic="binary" order by ID DESC' % (user)
sql语句中的用户变量似乎永远不会被填充或创建,我只是不知道怎么做
UserScore.py
class UserScore(Frame):
def __init__(self,master):
Frame.__init__(self,master)
self.pack()
self.getRecords()
def getRecords(self):
我猜设置
sql
的函数是某种GUI回调,而不是直接用参数调用的函数。您是否尝试过在UserScore.py
中调用设置全局变量的函数,然后让设置sql
的函数访问该全局变量
可能不是最符合python的方法——应该用一个类实例来实现——但它应该可以工作并且很简单
编辑:澄清:
在可访问用户的函数中,添加以下内容:
import UserScore
UserScore.user = user
在UserScore.py
中,将其放在顶部附近:
user = None
然后在UserScore.UserScore函数中,只需访问变量user
(用相同的大写字母给模块和类赋予相同的名称可能不是一个好主意,这可能会让人困惑。)UserScore.py的设置就像这样-
类UserScore(Frame):def u init(self,master)self.pack()self.getRecords()def getRecords(self):
在该代码中是否也可以访问全局变量?我需要在init方法中声明它吗?谢谢你的建议!我已经用你建议的解决方案解决了这个问题。很好,记住这不是Pythonic,也不是最好的方法。只是一个简单的方法。