Python 从导入的文件更新布尔变量

Python 从导入的文件更新布尔变量,python,import,boolean,python-multithreading,Python,Import,Boolean,Python Multithreading,我是编程新手,遇到了一个问题。 当变量game\u end为真时,导入的函数bonnie\u movement应该停止运行,现在当我尝试更新该变量(该变量也是导入的)时,它不会更新该变量。例如: import os import random import threading import time from movement_testing import * def p(): global game_end a = input("> "

我是编程新手,遇到了一个问题。 当变量
game\u end
为真时,导入的函数
bonnie\u movement
应该停止运行,现在当我尝试更新该变量(该变量也是导入的)时,它不会更新该变量。例如:

import os 
import random 
import threading 
import time 
from movement_testing import * 

def p(): 
    global game_end 
    a = input("> ") 
    if a == "end": 
        game_end = True 
        time.sleep(0.5) 
        print(str(game_end)) 

threading.Thread(target=p).start() 
threading.Thread(target=bonnie_movement).start() 
你在那里看到的印刷品发出了
True
但是
bonnie_movement
仍在继续。有人知道我能做什么吗

提前谢谢


编辑:变量
a
与问题无关,除了立即停止函数声明
game\u end=True
之外,它没有任何实际用途。打印也是一种查看
游戏结束时
是否在功能
p
中更新的方法,发球没有真正的目的。

欢迎来到StackOverflow

如果要根据
a
的值打印
True
,则甚至不需要使用
game\u end
变量。事实上,您已经在某个条件中使用了
变量。
现在,由于我不知道
movement\u testing
课程中的
game\u end
到底做了什么,我将尝试用您已经提供的信息来指导您。您只需修改
def p()
函数,如下所示:

def p():
如果a==“结束”:
打印(真)
甚至

def p():
打印(a==“结束”)
如果您可以在此文件中声明
game\u end
变量,或者在
movement\u testing
中定义
def p()


祝你旅途好运

我在reddit上发布了相同的问题,下面是答案:

python中的全局变量是模块的全局变量,而不是所有模块的全局变量。您声明导入变量的行实际上没有

如果“游戏结束”是“移动测试”的一个属性,那么尝试像这样访问它

移动测试。游戏结束=真

打印(str(移动测试、游戏结束))


谢谢你的回答,但遗憾的是,这不是我要问的,我编辑了这篇文章来澄清这一点,真正的问题是如何让函数
p
更新函数
bonnie\u movement
中的变量
game\u end
(这两个变量都是通过
从movement\u testing import.
导入的)。您应该阅读python文档中有关线程和编程的更多信息。