如何在python中停止函数(电报机器人)

2024-10-08 20:24:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试将selenium机器人集成到电报中,这样我就可以轻松启动和停止

def mulai(update, context):
    update.message.reply_text('Absen Start!')
    while True:
        if pycron.is_now('*/1 * * * *'):
            absen()
        time.sleep(60)

但如何阻止它呢


Tags: texttruemessageifdefseleniumcontext机器人
2条回答

要停止代码运行,可以使用python中的break语句


from time import sleep

#Counting up to 10
for i in range(10):
    print(i+1)
    sleep(1)
    
    #stop counting at 5
    if i == 4:
        break

如果没有break语句,代码将继续计数到10

根据评论中的澄清,您正试图阻止来自其他地方的一个循环。一种方法是共享变量:

run_flag = True

def fn1():
    while run_flag:
        do_stuff()
        sleep(60)

def stop_fn1():
    global run_flag
    run_flag = False

这是安全的,只要一次只能对run_flag进行一次写访问,也就是说,您没有试图跨多个线程共享它。如果你,你需要考虑使用线程安全的工具,比如semaphore

不需要run_flag是全局的,只要循环函数和设置它的函数都可以访问它

相关问题 更多 >

    热门问题