【发布时间】:2014-03-11 22:52:49
【问题描述】:
我正在使用 Vizard (Python),并希望在每次更新时钟时运行一个事件。在 Vizard 中正确执行此操作的函数是 vizact.ontimer()。这个函数的使用手册可以在here找到。
我想调用的函数既有输入又有输出。我明白(根据vizact.ontimer() 功能手册)我可以指定函数的输入,如下所示:
vizact.ontimer(0,myFunction,inputs)
...inputs 是输入列表,myFunction 是我要运行的函数的名称。 0 仅表示该函数应在有机会时运行。
但是,我不知道如何捕获来自myFunction 的输出。我该怎么做呢?似乎vizact.ontimer() 函数返回的对象与myFunction 的输出没有相似之处。
【问题讨论】:
-
您希望输出是什么?我猜
vizact.ontimer不会立即调用该函数,而是在将来的某个时候调用。所以还没有任何东西可以返回。 -
我的函数返回几个整数。
vizact.ontimer()定期调用函数,由第一个参数指定。因此,在我上面的示例中,函数myFunction每0秒调用一次(即立即循环)。 -
要清楚(不知道 vizard 的详细信息):执行
vizact.ontimer可能不会立即运行该函数,它注册它以在将来的某个时间运行(可能是“尽快”)。所以它的返回值不会与函数相关,因为它还没有运行它。它将在下一个计时器滴答时运行该功能。所以,你不想依赖返回的结果;正如您的解决方案所建议的那样,您希望该函数能够修改可在其他地方使用的数据。 -
非常感谢。这很有意义。我目前正在实施下面的解决方案,正如你所说的那样。它只是涉及一些非常丑陋的代码(为了更改变量,我必须将其附加到列表中,然后删除列表元素零)