请教个Python问题 关于函数间传参

59次阅读

共计 961 个字符,预计需要花费 3 分钟才能阅读完成。

内容最后由 匿名 于 2023-5-12 20:40 编辑 就是函数 A 生成参数 m 这个参数 m 应用到函数 C 这样函数 A 不断运行 不断产生新的 m 函数 C 也不断运行 并使用新的 mchatgpt 给的建议是多线程:def 函数 A   while True:    m = …    queue.put(m)def 函数 C   while True:    b = queue.get()    …bif name == \’main\’:# 创建一个队列    q = queue.Queue()# 创建两个线程,一个运行函数 A,另一个运行函数 C    t1 = threading.Thread(target=function_a, args=(q,))   t2 = threading.Thread(target=function_c, args=(q,))# 启动线程    t1.start()   t2.start()问题是:这样以后,每次只能先运行函数 A 后 函数 C 才运行我要的效果是:函数 C 得参数 m 后,就自个不停的运行,而不是等函数 A 再运行完一遍产生新的参数 m 才运行这个要求要怎么实现?Far 2023-05-12 20:40 2c 应该是必须有 m 参数才能运行?那 c 在运行前做一个判断不行吗?或者 a 在运行时会产生 n 的 m 参数,把它储存起来,让 c 调用?你提问题逻辑不恰 飞来花开 2023-05-12 20:41 3 绑定 blackdog 2023-05-12 20:46 4 应该可以换种思路,A 运行结束把结果传递给全局变量 B,C 函数不传参,而是变成去读取全局变量 B 的值,就应该可以做到你所需要的效果了 雁过拔毛的坛友 2023-05-12 20:53 5 内容最后由 雁过拔毛的坛友于 2023-5-12 20:56 编辑 我感觉程序没毛病,a 和 c“同时运行”(线程的同时你懂的)为什么感觉 c 没运行,问题出在这里,b = queue.get() 假如 a 产生了 3 个 m 值,但是 c 运行到第四次,这里 queue.get 阻塞状态,一直在等待着值进来,然后 c 就停了建议用一个全局变量,格式为数组,a 函数一直向数组里添加 m 值,然后 c 函数调用参数的时间用 [-1] 获得最新值就可以了 Tankie 2023-05-12 20:56 6 这个程序想复杂了 def a():retuen mdef b(arg):DigitalOcean sthdef main():    while 1:    m = a()    b(m)

正文完
 0