Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在不同类的两个文件中携带一个变量_Python_Class_Methods_Static_Global - Fatal编程技术网

Python 在不同类的两个文件中携带一个变量

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可以工作,我使

我想在用户登录后将变量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可以工作,我使用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,也不是最好的方法。只是一个简单的方法。