下面是一个示例代码,展示了如何编写一个既可以暂停又可以取消暂停的函数:
import time
class PauseableFunction:
def __init__(self):
self.paused = False
def pause(self):
self.paused = True
def resume(self):
self.paused = False
def is_paused(self):
return self.paused
def cancel_pause(self):
self.paused = False
def run(self):
while True:
if self.is_paused():
print("Function is paused...")
while self.is_paused():
time.sleep(1)
print("Function resumed.")
# 执行任务
print("Doing some work...")
time.sleep(1)
# 创建一个 PauseableFunction 实例
function = PauseableFunction()
# 启动函数
function.run()
# 暂停函数
function.pause()
# 检查函数是否暂停
print(function.is_paused()) # 输出:True
# 取消暂停
function.cancel_pause()
# 检查函数是否暂停
print(function.is_paused()) # 输出:False
# 恢复函数
function.resume()
通过调用 function.pause()
方法,可以将函数暂停。调用 function.cancel_pause()
可以取消暂停。调用 function.resume()
可以恢复函数的执行。在函数的 run()
方法中,通过检查 self.is_paused()
方法的返回值来判断函数是否处于暂停状态。如果是暂停状态,则进入一个循环,每次循环都会检查是否解除暂停,如果解除暂停则继续执行任务。
上一篇:编写一个解析器,仅转换大小写。