如何在运行时更改函数参数?
我是初学者,使用Python 2.7。我想让定义参数可以更改,这样我就可以动态控制暂停和字符串输出。这可能吗?我读过一些线程的东西,但它似乎更多的是关于同时执行两个任务。我希望在运行时两个任务之间进行通信。
def writeAndPause(stringToWrite,pauseSeconds)
while True:
print stringToWrite
sleep(pauseSeconds)
非常感谢任何解决方案或文档链接。感谢您抽出时间! /卡尔
I'm a beginner and use Python 2.7. I want to make the definitions parameters to be changeable so I can controll the pause and string output on the fly. Is this possible? I've read some thread stuff but it seems to be more about executing two tasks at the same time. I want communication between the two tasks during runtime.
def writeAndPause(stringToWrite,pauseSeconds)
while True:
print stringToWrite
sleep(pauseSeconds)
Any solution or link to documentation is very much appreciated. Thanks for your time!
/Karl
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
线程用于同时工作。我想如果你重新设计你的代码你就会得到你想要的效果。考虑从函数中删除
while
子句并将其放在外面:在调用此函数的某个地方:
Threads are for simultaneous work. I guess if you just redesign your code you will have the effect you want. Consider removing the
while
clause from you function and put it outside:And somewhere you call this function:
@Constantinius 是对的:答案几乎肯定是重新设计你的代码,这样你就不需要做一些深奥的事情。
我将描述另一种纯粹为了好玩而做到这一点的方法。如果您确实想将 while 循环保留在函数内,则可以使用 Yield Expression
例如:
这可以按以下方式使用:
既然你已经看到了它,忘记它并按照@Constantinius所说的去做。
@Constantinius is right: the answer is almost certainly to redesign your code so you don't need to do something esoteric.
I'll describe another way to do it purely for fun. If you really wanted to keep that while loop inside the function, you can do so with a Yield Expression
For example:
This can be used in the following way:
Now that you've seen it, forget it and do what @Constantinius said.
这对你有帮助吗?
它利用了默认参数定义的特征以及列表不是变量而是引用集合的事实,在我的代码中只有一个(简短地说)
结果
Does this help you ?
It takes advantage of the characteristics of default argument definition and the fact a list isn't a variable but a collection of reference, in my code only one (shortly said)
result