从main中的Class访问变量

时间:2017-03-09 09:31:47

标签: python class

我正在尝试学习Python,而且我遇到了类之间的共享变量。

我有一个类来设置这样的变量:

class CheckStuff(threading.Thread):

  def __init__(self, debug):
    threading.Thread.__init__(self)
    self.debug = debug
    self.newGames = False

  def get_new_games(self):
    return self.newGames

  def set_new_games(self, new_games):
    self.newGames = new_games

  def run(self):
    # DO STUFF #
    # ... #
    self.set_new_games(True)
    return

我想从我的主要访问new_games,我试过这样:

if __name__ == "__main__":

    debug = True
    t1 = cs.CheckStuff(debug)
    t1.start()
    t1.join()

    print(cs.CheckStuff(debug).get_new_games())
    exit()

但这总是返回False。我哪里错了?任何提示赞赏

2 个答案:

答案 0 :(得分:4)

你正在创建一个新的CheckStuff实例,它没有做任何事情,因此它的newGames属性为False。运行的实例是t1,你应该使用它:

print(t1.get_new_games())

(注意,这里似乎没有充分的理由使用线程,但没关系。)

答案 1 :(得分:2)

在以下一行

FormRequest

你创建了一个CheckStuff类的新实例,并在构造函数中设置了 print(cs.CheckStuff(debug).get_new_games()) 。然后,通过调用self.newGames = False方法,您要求对象返回其get_new_game()属性,这显然是newGame