写点什么

Python 代码阅读(第 61 篇):延迟调用函数

作者:Felix
  • 2021 年 11 月 23 日
  • 本文字数:628 字

    阅读完需:约 2 分钟

Python代码阅读(第61篇):延迟调用函数

Python 代码阅读合集介绍:为什么不推荐Python初学者直接看项目源码


本篇阅读的代码实现了在给定的延迟时间后,调用指定函数的功能。


本篇阅读的代码片段来自于30-seconds-of-python

delay

from time import sleep
def delay(fn, ms, *args): sleep(ms / 1000) return fn(*args)
# EXAMPLESdelay( lambda x: print(x), 1000, 'later') # prints 'later' after one second
复制代码


delay函数接收一个指定函数fn,一个延迟时间ms和指定函数的参数*args,在指定延迟后,返回指定函数fn的调用结果。


函数使用sleep()方法来进行延迟,然后调用指定函数。delay函数在调用的时候,可以使用lambda表达式的匿名函数,也可以使用一般函数。需要注意的是当fn存在关键字参数时会发生异常。


>>> from time import sleep>>>>>> def delay(fn, ms, *args):...   sleep(ms / 1000)...   return fn(*args)...>>> def f(pos_only, /, standard, *, kwd_only):...     print('pos_only:{}\nstandard:{}\nkwd_only:{}'.format(pos_only,standard,kwd_only))...>>> delay(f, 1000, 1, 2, 3)Traceback (most recent call last):  File "<stdin>", line 1, in <module>  File "<stdin>", line 3, in delayTypeError: f() takes 2 positional arguments but 3 were given>>> delay(f, 1000, 1, 2, kwd_only = 3)Traceback (most recent call last):  File "<stdin>", line 1, in <module>TypeError: delay() got an unexpected keyword argument 'kwd_only'
复制代码


发布于: 2 小时前阅读数: 5
用户头像

Felix

关注

没有看点,仅仅闲聊。欢迎关注“没看点” 2018.05.04 加入

欢迎关注个人公众号:没看点 个人主页:www.zhangfelix.com

评论

发布
暂无评论
Python代码阅读(第61篇):延迟调用函数