美文网首页Python代码阅读
Python代码阅读(第61篇):延迟调用函数

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

作者: FelixZzzz | 来源:发表于2021-10-21 16:38 被阅读0次

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

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

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

    delay

    from time import sleep
    
    def delay(fn, ms, *args):
      sleep(ms / 1000)
      return fn(*args)
    
    # EXAMPLES
    delay(
      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 delay
    TypeError: 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'
    

    相关文章

      网友评论

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

        本文链接:https://www.haomeiwen.com/subject/zszgoltx.html