要在延迟后执行函数或使用事件循环(无线程)在给定的秒数内重复函数,您可以:

Tkinter的

#!/usr/bin/env python

from Tkinter import Tk

def foo():

print("timer went off!")

def countdown(n, bps, root):

if n == 0:

root.destroy() # exit mainloop

else:

print(n)

root.after(1000 / bps, countdown, n - 1, bps, root) # repeat the call

root = Tk()

root.withdraw() # don't show the GUI window

root.after(4000, foo) # call foo() in 4 seconds

root.after(0, countdown, 10, 2, root) # show that we are alive

root.mainloop()

print("done")

产量

10

9

8

7

6

5

4

3

timer went off!

2

1

done

GTK

#!/usr/bin/env python

from gi.repository import GObject, Gtk

def foo():

print("timer went off!")

def countdown(n): # note: a closure could have been used here instead

if n[0] == 0:

Gtk.main_quit() # exit mainloop

else:

print(n[0])

n[0] -= 1

return True # repeat the call

GObject.timeout_add(4000, foo) # call foo() in 4 seconds

GObject.timeout_add(500, countdown, [10])

Gtk.main()

print("done")

产量

10

9

8

7

6

5

4

timer went off!

3

2

1

done

扭曲

#!/usr/bin/env python

from twisted.internet import reactor

from twisted.internet.task import LoopingCall

def foo():

print("timer went off!")

def countdown(n):

if n[0] == 0:

reactor.stop() # exit mainloop

else:

print(n[0])

n[0] -= 1

reactor.callLater(4, foo) # call foo() in 4 seconds

LoopingCall(countdown, [10]).start(.5) # repeat the call in .5 seconds

reactor.run()

print("done")

产量

10

9

8

7

6

5

4

3

timer went off!

2

1

done

ASYNCIO

Python 3.4 为异步IO 引入了新的临时API - asyncio模块:

#!/usr/bin/env python3.4

import asyncio

def foo():

print("timer went off!")

def countdown(n):

if n[0] == 0:

loop.stop() # end loop.run_forever()

else:

print(n[0])

n[0] -= 1

def frange(start=0, stop=None, step=1):

while stop is None or start < stop:

yield start

start += step #NOTE: loss of precision over time

def call_every(loop, seconds, func, *args, now=True):

def repeat(now=True, times=frange(loop.time() + seconds, None, seconds)):

if now:

func(*args)

loop.call_at(next(times), repeat)

repeat(now=now)

loop = asyncio.get_event_loop()

loop.call_later(4, foo) # call foo() in 4 seconds

call_every(loop, 0.5, countdown, [10]) # repeat the call every .5 seconds

loop.run_forever()

loop.close()

print("done")

产量

10

9

8

7

6

5

4

3

timer went off!

2

1

done

注意:这些方法之间的界面和行为略有不同。

python中延时函数_推迟python中的函数相关推荐

  1. python什么是高阶函数_说说 Python 中的高阶函数

    高阶函数(higher-order function)指的是:接受一个函数为参数,或者把函数作为结果值返回的函数1. 1 sorted() 比较常见的高阶函数是 sorted(),其内部的关键字参数 ...

  2. python中比较重要的几个函数_【python】python re模块中几个比较重要的函数

    转自:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=22920230&id=3389387 re.match re.m ...

  3. python中如何调用函数_我写了一个函数,如何在python中调用

    匿名用户 1级 2015-03-06 回答 Python的特色简单 Python是一种代表简单主义思想的语言.阅读一个良好的Python程序就感觉像是在读英语一样,尽管这个英语的要求非常严格!Pyth ...

  4. python enumerate函数_关于python中enumerate和zip函数的用法及举例

    关于python中enumerate和zip函数的用法及举例 关于enumerate函数: enumerate函数可以同时返回列表或元组等可迭代对象的下标和内容,但实际上,enumerate函数实际返 ...

  5. python整数转换字符串_使用Python中的str()函数将整数值转换为字符串

    python整数转换字符串 Given an integer value and we have to convert the value to the string using str() func ...

  6. python isalnum函数_探究Python中isalnum()方法的使用

    探究Python中isalnum()方法的使用 isalnum()方法检查判断字符串是否包含字母数字字符. 语法 以下是isalnum()方法的语法: str.isa1num() 参数 NA 返回值 ...

  7. python魔法方法与函数_在Python中画图(基于Jupyter notebook的魔法函数)

    这篇文章主要介绍了在Python中画图(基于Jupyter notebook的魔法函数),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 先展示一段相 ...

  8. python跨函数调用变量_对python中不同模块(函数、类、变量)的调用详解

    首先,先介绍两种引入模块的方法. 法一:将整个文件引入 import 文件名 文件名.函数名( ) / 文件名.类名 通过这个方法可以运行另外一个文件里的函数 法二:只引入某个文件中一个类/函数/变量 ...

  9. python 数据比对 函数_用python比对csv文件中的数据

    做了个问卷,下载了收集数据xlsx文件,把数据弄到另一个表格文件中,需要校验数据转移的准确性. 使用python的csv库,使用csv.reader(f)函数读取表格数据,转成列表,确定数据行的主键, ...

最新文章

  1. 图论 ---- F. Useful Edges(不等式移项优化预处理 + 路径和简单路径的区别 + 最短路)
  2. int 9中断例程-;在屏幕中间依次显示'a'~'z',并可以让人看清。 在显示的过程中,按下Esc键后,改变显示的颜色...
  3. 前端js变量踩坑,部分手机浏览器不支持let、const
  4. js调用浏览器的下载框
  5. scanf可以输入负数吗_C语言进行数据的多输入多输出
  6. 女生做产品经理好吗_谁说女生不适合做产品经理?
  7. 浅谈三层架构 通过这个,+Java开发模式经验。终于相通了,动软到底是为什么这么做...
  8. 几个经常用到的字符串的截取(java)
  9. wxpython列表控件listctrl设置某行颜色_改变ListCtrl某行的背景色或者字体颜色
  10. 【Tiny4412】Tiny4412开发板介绍
  11. python语料库_Python-使用NLTK创建新的语料库
  12. [渝粤教育] 西南石油大学 普通地质学 参考 资料
  13. CentOS 7.4安装配置Oracle 12cR2 12.2.0.1.0
  14. Channel Attention 通道注意力
  15. 图书馆管理系统Python+MySQL+tkinter图形化界面+管理员登录+学生登录(注释详细)
  16. 如何将诸如Acrobat Reader DC等默认安装在C盘的软件,安装在非系统盘?
  17. 面临困难不知道如何抉择怎么办,《大话西游之大圣娶亲》观后感
  18. 全机房最蒟蒻的讲堂_第一期_关于orz
  19. 共享单车之数据可视化
  20. C语言同时满足三个并列条件,你不得不知道的编程基础之同时满足多个条件

热门文章

  1. c语言实现五子棋(真人对战+人机大战)
  2. java voliate,voliate 的实现原理是什么【面试题详解】
  3. 利用Python爬取散文网的文章实例
  4. 德施曼明源云采购|强强联合,加速发力B端合作,品牌智能锁成供应链强动力
  5. 一线大厂程序员谈回长沙感受:这不是退路,而是新的开始
  6. 二、更换Abp Vnext默认的UI 布局
  7. 中国智能材料市场供需分析及投资战略研究报告2022-2028年
  8. 车祸导致多人死伤,自称无法刹车,巴黎出租车司机起诉特斯拉
  9. C# 动态创建Access数据库时的错误:“不可识别的数据库格式”
  10. MVP吕科——怡红公子的努力和成就