在Python代码中向方法传递参数
我有一个python程序和一个导入的模块。导入的模块称为在Python代码中向方法传递参数,python,python-3.x,Python,Python 3.x,我有一个python程序和一个导入的模块。导入的模块称为mymod 我想做的是能够使用主程序中的线程终止模块。代码如下所示: 主程序 导入线程 导入时间 导入mymod end_mymod=False def thread_函数(名称): 全球结束日期(mymod) 打印(“线程%s:开始”,名称) 时间。睡眠(2) 打印(“线程%s:正在处理”,名称) end_mymod=真 打印(结束\u mymod) 如果名称=“\uuuuu main\uuuuuuuu”: x=threading.Th
mymod
我想做的是能够使用主程序中的线程终止模块。代码如下所示:
主程序
导入线程
导入时间
导入mymod
end_mymod=False
def thread_函数(名称):
全球结束日期(mymod)
打印(“线程%s:开始”,名称)
时间。睡眠(2)
打印(“线程%s:正在处理”,名称)
end_mymod=真
打印(结束\u mymod)
如果名称=“\uuuuu main\uuuuuuuu”:
x=threading.Thread(target=Thread\u函数,args=(1,))
x、 开始()
打印(“启动mymod”)
mymod.main()
时间。睡眠(5)
打印(end_mymod)
您的线程函数中的end_mymod
只是一个局部变量
您需要在函数内部将其声明为global
。我不太确定您到底想做什么,但是您在线程中访问的end\u mymod具有不同的作用域,因为您在该线程函数中没有使用global end\u mymod。此外,在脚本中的任何位置都不会使用end_mymod设置mymod变量。如果您觉得我不明白您的意思,请帮助我理解,以便我能够帮助您。已声明但从未使用end\u香蕉
您似乎认为修改一个模块中的变量会影响代码在另一个模块中查看不同名称的变量我尝试过,但仍然看不到在mymod模块上更改为end_mymod。