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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在python中每N次運行一個方法

在python中每N次運行一個方法

ibeautiful 2022-06-28 10:39:32
我試圖每 5 秒打印一個句子,我需要向它傳遞一個參數(shù)。我在用threadingimport threadingdef printit(whatever):  threading.Timer(5.0, printit).start()  print(whatever)var= "start"printit(var)這給了我這個錯誤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貢獻1851條經驗 獲得超4個贊

threading.Timer構造函數(shù)接受各個目標函數(shù) ( ) 的args關鍵字參數(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)

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


start

start

start

start

...


查看完整回答
反對 回復 2022-06-28
?
千巷貓影

TA貢獻1829條經驗 獲得超7個贊

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


import threading


def printit(whatever): 

    print(whatever)

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


var = "start" 

printit(var)

您收到錯誤是因為您在whatever遞歸調用printit函數(shù)時沒有傳入(函數(shù)參數(shù))。


編輯:


但是,此解決方案將產生無限數(shù)量的線程。如果您想將該進程作為后臺任務運行,您可以這樣做只使用一個線程。


注意:我在這個例子中使用了 2 個參數(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)


查看完整回答
反對 回復 2022-06-28
?
叮當貓咪

TA貢獻1776條經驗 獲得超12個贊

你可以使用時間:


def printit(str_):

   time.sleep(5)

   print(str_)


var = "start"

while True:

     printit(var)


查看完整回答
反對 回復 2022-06-28
?
白豬掌柜的

TA貢獻1893條經驗 獲得超10個贊

您可以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


查看完整回答
反對 回復 2022-06-28
  • 4 回答
  • 0 關注
  • 252 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號