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文档中有关线程和编程的更多信息。