2024-09-28 22:35:17 发布
网友
我是初学者,使用python2.7。我想让definitions参数变为可更改的,这样就可以动态地控制暂停和字符串输出。这可能吗?我读过一些关于线程的东西,但似乎更多的是关于同时执行两个任务。我希望在运行时两个任务之间进行通信。在
def writeAndPause(stringToWrite,pauseSeconds) while True: print stringToWrite sleep(pauseSeconds)
任何解决方案或链接到文档都非常感谢。谢谢你的时间! /卡尔
线程用于同时工作。我想如果你重新设计你的代码,你会得到你想要的效果。考虑从函数中删除while子句并将其放在外部:
while
def writeAndPause(stringToWrite,pauseSeconds) print stringToWrite sleep(pauseSeconds)
你把这个函数叫做:
@Constantinius是对的:答案几乎肯定是重新设计代码,这样你就不需要做深奥的事情了。在
我将描述另一种纯粹为了好玩的方式。如果您真的想在函数中保留while循环,可以使用Yield Expression
例如:
def writeAndPause(): while True: stringToWrite, pauseSeconds = yield print stringToWrite sleep(pauseSeconds)
这可以通过以下方式使用:
既然你已经看到了,那就忘掉它,照康斯坦丁尼乌斯说的去做吧。在
这对你有帮助吗?在
它利用了默认参数定义的特性,以及列表不是变量而是引用的集合,在我的代码中只有一个(简短地说)
from time import sleep,time stringToWrite = [None] pauseSeconds = [0] def writeAndPause(stw = stringToWrite, pz = pauseSeconds, keep = [time()]): if stw[0]: print stw[0] else: print 'START' print ' having waited ',time()-keep[0],'seconds, must wait',pz[0],'seconds' keep[0] = time() sleep(pz[0]) writeAndPause() for a,b in (('first',1),('second',2.05),('third',3.4),('fourth',0.88), ('BANANA',0.2),('APPLE',1.5), ('PEAR',0.77),('CHERRY',4), ('ORANGE',0.1),('NUT',6), ('APRICOT',0.56),('PLUM',2.5)): stringToWrite[0] = a pauseSeconds[0] = b writeAndPause()
结果
线程用于同时工作。我想如果你重新设计你的代码,你会得到你想要的效果。考虑从函数中删除
while
子句并将其放在外部:你把这个函数叫做:
^{pr2}$@Constantinius是对的:答案几乎肯定是重新设计代码,这样你就不需要做深奥的事情了。在
我将描述另一种纯粹为了好玩的方式。如果您真的想在函数中保留while循环,可以使用Yield Expression
例如:
这可以通过以下方式使用:
^{pr2}$既然你已经看到了,那就忘掉它,照康斯坦丁尼乌斯说的去做吧。在
这对你有帮助吗?在
它利用了默认参数定义的特性,以及列表不是变量而是引用的集合,在我的代码中只有一个(简短地说)
结果
^{pr2}$相关问题 更多 >
编程相关推荐