Переносить переменную между двумя файлами в разных классах - PullRequest
0 голосов
/ 26 марта 2011

Я хочу перенести пользователя переменной после входа в систему, в другой файл, который заполнит или перенесет эту переменную пользователя, чтобы я мог использовать ее в выражении 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 работает, я проверил ее, используя распечатку отчетов, однако мне нужно перенести ее в файл 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):

1 Ответ

0 голосов
/ 26 марта 2011

Я предполагаю, что функция, которая устанавливает sql, является своего рода обратным вызовом GUI, а не тем, что вы вызываете напрямую с аргументами. Вы пытались вызвать функцию из UserScore.py, которая устанавливает глобальную переменную, и затем иметь функцию, которая устанавливает sql, получить доступ к этой глобальной переменной?

Вероятно, не самый Pythonic способ сделать это - вероятно, следует сделать это с экземпляром класса - но он должен работать, и это просто.

Редактировать: Уточнить:

В функцию, которая может получить доступ к пользователю, добавьте это:

import UserScore
UserScore.user = user

В UserScore.py поместите это около вершины:

user = None

Затем в функции UserScore.UserScore просто получите доступ к переменной user.

(Вероятно, не очень хорошая идея давать модулю и классу одно и то же имя с одинаковой заглавной буквой, может запутаться.)

...