我正在尝试学习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
。我哪里错了?任何提示赞赏
答案 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
。