python倒计时定时器_使用python修饰器的定时器倒计时
def countdown(n):
while n > 0:
return n
n -= 1
n -= 1永遠不會到達。實際上,while循環(huán)只會迭代一次,你的函數只返回n。
您想改為使用yield。
但是,它仍然不起作用。會發(fā)生什么情況是,您將在呼叫countdown前暫停2秒,但不會在每次迭代之間進行。
在該使用情況我甚至不會用一個裝飾,只是默認參數:
def countdown(n, wait=None):
while n > 0:
if wait:
time.sleep(wait)
yield n
n -= 1
# no sleep between iterations
for i in countdown(5):
print(i)
# 2 seconds sleep between every iteration
for i in countdown(5, wait=2):
print(i)
編輯如果你堅持使用裝飾。請注意,這是次優(yōu)(并沒有多大意義),我不會在生產代碼中使用它:
import time
def sleep_dec(function):
def wrapper(*args):
return function(*args, wait=2)
return wrapper
@sleep_dec
# it might make more sense to accept **kwargs instead of wait=None
def countdown(n, wait=None):
while n > 0:
if wait:
time.sleep(wait)
yield n
n -= 1
# 2 seconds sleep between each iteration
for i in countdown(5):
print(i)
總結
以上是生活随笔為你收集整理的python倒计时定时器_使用python修饰器的定时器倒计时的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 神兵利器 nth_element
- 下一篇: websocket python爬虫_p