第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

在python中每N次運(yùn)行一個(gè)方法

在python中每N次運(yùn)行一個(gè)方法

ibeautiful 2022-06-28 10:39:32
我試圖每 5 秒打印一個(gè)句子,我需要向它傳遞一個(gè)參數(shù)。我在用threadingimport threadingdef printit(whatever):  threading.Timer(5.0, printit).start()  print(whatever)var= "start"printit(var)這給了我這個(gè)錯(cuò)誤C:\Users\Wei Xi\Desktop>python test.pystartException in thread Thread-1:Traceback (most recent call last):  File "C:\Users\Wei Xi\AppData\Local\Programs\Python\Python38\lib\threading.py", line 932, in _bootstrap_inner    self.run()  File "C:\Users\Wei Xi\AppData\Local\Programs\Python\Python38\lib\threading.py", line 1254, in run    self.function(*self.args, **self.kwargs)TypeError: printit() missing 1 required positional argument: 'whatever'```
查看完整描述

4 回答

?
繁花不似錦

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超4個(gè)贊

threading.Timer構(gòu)造函數(shù)接受各個(gè)目標(biāo)函數(shù) ( ) 的args關(guān)鍵字參數(shù):kwargsclass threading.Timer(interval, function, args=None, kwargs=None)


import threading


def printit(whatever):

  threading.Timer(5.0, printit, args=(whatever,)).start()

  print(whatever)


var= "start"

printit(var)

示例輸出將是(在“無(wú)限”打印中):


start

start

start

start

...


查看完整回答
反對(duì) 回復(fù) 2022-06-28
?
千巷貓影

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超7個(gè)贊

這是可能的解決方案之一:


import threading


def printit(whatever): 

    print(whatever)

    threading.Timer(5.0, printit, {whatever}).start() 


var = "start" 

printit(var)

您收到錯(cuò)誤是因?yàn)槟趙hatever遞歸調(diào)用printit函數(shù)時(shí)沒有傳入(函數(shù)參數(shù))。


編輯:


但是,此解決方案將產(chǎn)生無(wú)限數(shù)量的線程。如果您想將該進(jìn)程作為后臺(tái)任務(wù)運(yùn)行,您可以這樣做只使用一個(gè)線程。


注意:我在這個(gè)例子中使用了 2 個(gè)參數(shù)。


import time

import threading



def printit(whatever, whatever2, seconds=5):

    while True:

        print(whatever)

        print(whatever2)

        time.sleep(seconds)


var = "start"

var2 = "end"


threading.Thread(target=printit, kwargs={"whatever":var, "whatever2":var2, "seconds":5}).start() 


print("Do something else")

輸出:


start

end

Do something else

start

end

start

end

... (repeat start end every 5 seconds)


查看完整回答
反對(duì) 回復(fù) 2022-06-28
?
叮當(dāng)貓咪

TA貢獻(xiàn)1776條經(jīng)驗(yàn) 獲得超12個(gè)贊

你可以使用時(shí)間:


def printit(str_):

   time.sleep(5)

   print(str_)


var = "start"

while True:

     printit(var)


查看完整回答
反對(duì) 回復(fù) 2022-06-28
?
白豬掌柜的

TA貢獻(xiàn)1893條經(jīng)驗(yàn) 獲得超10個(gè)贊

您可以time.sleep()在 while 循環(huán)中使用該函數(shù):


import time


def printit(whatever, seconds=5):

    while True:

        print(whatever)

        time.sleep(seconds)


var= "start"

printit(var) # prints "start" every 5 seconds

#start


#start


#start


查看完整回答
反對(duì) 回復(fù) 2022-06-28
  • 4 回答
  • 0 關(guān)注
  • 262 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)