在我的Python環(huán)境(Win7+Python2.7.9)下測試沒問題,是等待5秒后再輸出 m。
創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供禪城網(wǎng)站建設(shè)、禪城做網(wǎng)站、禪城網(wǎng)站設(shè)計(jì)、禪城網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、禪城企業(yè)網(wǎng)站模板建站服務(wù),十多年禪城做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
你的問題可能是被標(biāo)準(zhǔn)輸出流的緩沖區(qū)緩沖了,給 stdout 加一個(gè) flush 就可以了:
from?time?import?sleep
from?sys?import?stdout
print?"s"
stdout.flush()
sleep(5)
print?"m"
time.sleep() 函數(shù)命名來源于英文單詞time(時(shí)間)和sleep(睡眠)。
time 是python帶的非內(nèi)置庫,使用時(shí)需要import,主要用于處理和時(shí)間相關(guān)的操作。
time.sleep用于給定時(shí)間內(nèi)掛起(等待)當(dāng)前線程的執(zhí)行。
time.sleep() 函數(shù)的例子:
可以注釋掉time.sleep(2)再運(yùn)行一次對比一下
可以看到雖然都是打印出一樣的結(jié)果,但time.sleep()加入了等待時(shí)間
這里還要解釋一下python中線程與進(jìn)程的區(qū)別。
舉個(gè)例子,廚房做菜看成是一個(gè)進(jìn)程,那么這個(gè)進(jìn)程下面就可能有多個(gè)人或一個(gè)人(cpu基本執(zhí)行單元,即線程)來執(zhí)行,多個(gè)人可以分別洗菜,刷碗,擺盤等等同時(shí)作業(yè),他們又是共享這個(gè)廚房的資源的。每個(gè)人存在一定的資源競爭關(guān)系,比如爐火只有1個(gè)。
這里time.sleep是針對線程執(zhí)行的,也就是其中一個(gè)人去sleep睡覺了,不影響其他人的繼續(xù)工作。
參數(shù)
該函數(shù)沒有返回值。
結(jié)果類似如下:
可以看到秒數(shù)相差了5
無
time.sleep()常用于推遲執(zhí)行的場景
在python中,與時(shí)間相關(guān)的模塊有:time,datetime以及calendar
對基礎(chǔ)運(yùn)行環(huán)境有疑問的,推薦參考: python函數(shù)深入淺出 0.基礎(chǔ)篇
Python的內(nèi)置模塊time中有一個(gè)sleep函數(shù),單位是秒,也可以輸入小數(shù)表示毫秒。
await的解釋:
await用來聲明程序掛起。
比如異步程序執(zhí)行到某一步時(shí)需要等待的時(shí)間很長,就將此掛起,去執(zhí)行其他的異步程序。
await 后面只能跟異步程序或有__await__屬性的對象,因?yàn)楫惒匠绦蚺c一般程序不同。
程序解釋:
假設(shè)有兩個(gè)異步函數(shù)async a,async b,a中的某一步有await,
當(dāng)程序碰到關(guān)鍵字await b()后,異步程序掛起后去執(zhí)行另一個(gè)異步b程序,就是從函數(shù)內(nèi)部跳出去執(zhí)行其他函數(shù),
當(dāng)掛起條件消失后,不管b是否執(zhí)行完,要馬上從b程序中跳出來,回到原程序執(zhí)行原來的操作。
如果await后面跟的b函數(shù)不是異步函數(shù),那么操作就只能等b執(zhí)行完再返回,無法在b執(zhí)行的過程中返回。
如果要在b執(zhí)行完才返回,也就不需要用await關(guān)鍵字了,直接調(diào)用b函數(shù)就行。
所以這就需要await后面跟的是異步函數(shù)了。
在一個(gè)異步函數(shù)中,可以不止一次掛起,也就是可以用多個(gè)await。
更多Python知識,請關(guān)注:Python自學(xué)網(wǎng)??!
看了你發(fā)的函數(shù):
def Wait(self):
self._app.MainLoop()
看名字應(yīng)該是啟動(dòng)了阻塞循環(huán),去處理app的請求,這個(gè)就是需要一直運(yùn)行的,因?yàn)橐坏┩V沽?,你的app請求就沒發(fā)處理了。
如果你需要啟動(dòng)后再執(zhí)行的別的程序,可以使用多進(jìn)程,把這個(gè)啟動(dòng)放在別的進(jìn)程里去執(zhí)行。
如果解決了您的問題請采納!
如果未解決請繼續(xù)追問
很簡單,新建一個(gè)線程即可
import threading
def input_func( context ):
context[ 'data' ] = input( 'input:' )
context = { 'data' : 'default' }
t = threading.Thread( target = input_func ,args = ( context , ) )
t.start( )
t.join( 10 )#等待10秒
print( context )
文章題目:python智能等待函數(shù),python顯性等待
文章來源:http://muchs.cn/article40/hcppho.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、網(wǎng)站維護(hù)、網(wǎng)頁設(shè)計(jì)公司、建站公司、網(wǎng)站收錄、定制網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)