Python time.sleep()挂起

时间:2014-02-02 06:59:32

标签: python

我正在尝试将循环中的python函数导入另一个python。这是代码:

test.py

#!/usr/bin/python
import time

t = 15
print t

sleep_test.py

#!/usr/bin/python
import time

while True:
    import test
    time.sleep(10)

当我运行sleep_test.py时,打印15次,然后循环挂起。我试图在延迟10秒后连续打印15张。有没有人建议我如何使用我提供的代码来实现这一目标?

2 个答案:

答案 0 :(得分:2)

问题不在于sleep。问题实际上在import

当Python导入模块时,它只会执行一次。随后的imports将被忽略。

您应该将模块重构为:


test.py

def function_name_whatever_you_want():
    t = 15
    print t

sleep_test.py

import test
while True:
    test.function_name_whatever_you_want()
    time.sleep(10)

答案 1 :(得分:2)

并不是time.sleep()挂起(比预期更长);这是尝试导入已导入的模块不会重新导入它。如果您真的想强制重新加载,请使用内置的reload函数:

#!/usr/bin/python
import time

import test
while True:
    time.sleep(10)
    reload(test)

但是,您最好完全重构代码。这是一种非常丑陋的做事方式。

(在Python 3中,reloadimp模块的moved。)