最近有小伙伴留言说自己去面试时遇到公司让写一个装饰器,限制函数每10s调用一次。本篇文章扣丁学堂小编就和大家分享一下Python装饰器-限制函数调用次数的方法(10s调用一次),对Python开发感兴趣的小伙伴就随着小编一起来了解一下吧。
Python装饰器-限制函数调用次数的方法
装饰器分为带参数得装饰器以及不带参数得装饰器。
#不带参数的装饰器
@dec1
@dec2
def func():
...
#这个函数声明等价于
func = dec1(dec2(func))
#带参数的装饰器
@dec(some_args)
def func():
...
#这个函数声明等价于
func = dec(some_args)(func)
不带参数的装饰器需要注意的一些细节。
1. 关于装饰器函数(decorator)本身
因此一个装饰器一般对应两个函数,一个是decorator函数,用来进行一些初始化操作处理,一个是decorated_func用来实现对被装饰的函数func的额外处理。并且为了保持对func的引用,decorated_func一般作为decorator的内部函数:
def decorator(func):
def decorator_func()
func()
return decorated_func
decorator函数只在函数声明的时候被调用一次
装饰器实际上是语法糖,在声明函数之后就会被调用,产生dec