簡體   English   中英

Python time.sleep()掛起

[英]Python time.sleep() hangs

我正在嘗試將python函數導入另一個python while循環中。 這是代碼:

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張。 有人建議我用我提供的代碼來完成此工作嗎?

問題不在於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)

並不是那個時間time.sleep()掛起(比預期的時間更長); 這是因為嘗試導入已經導入的模塊不會重新導入它。 如果您確實要強制重新加載,請使用內置的reload功能:

#!/usr/bin/python
import time

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

但是,最好完全重組代碼。 這是一種非常丑陋的處理方式。

(在Python 3中, reload移至 imp模塊。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM