物流行业网站建设市场分析,淮北市住房和城乡建设局,小白如何搭建个人网站,帮公司做网站运营装饰器
它允许你修改函数或类的行为#xff0c;而不更改其源代码。实质上#xff0c;装饰器是接受另一个函数作为参数并返回一个包装原始函数的新函数。这样#xff0c;你可以在不修改原始函数的情况下#xff0c;添加一些额外的功能或逻辑。
def time_cost(func):…装饰器
它允许你修改函数或类的行为而不更改其源代码。实质上装饰器是接受另一个函数作为参数并返回一个包装原始函数的新函数。这样你可以在不修改原始函数的情况下添加一些额外的功能或逻辑。
def time_cost(func)::return:def wrapper(*args, **kwargs)::param args::param kwargs::return:start int(time.time() * 1000)func(*args, **kwargs)end int(time.time() * 1000)print(call api time cost:%s ms %(end - start))return wrapper
def ntimes(n):def inner(f):def wrapper(*args, **kwargs):for _ in range(n):rv f(*args, **kwargs)return rvreturn wrapper
return inner#然后你可以使用上述函数包装另一个函数例如前文中的 add 函数
ntimes(3)
def add(x, y):print(x y)
return x y Python中有许多内置的装饰器
例如staticmethod、classmethod、property、functools.lru_cache、functools.singledispatch等。你还可以为不同的目的创建自己的自定义装饰器。 闭包函数
闭包函数就是定义在函数内部的函数也就是函数的嵌套定义根据字面意思理解闭包函数有两个关键字闭和包分别是的封闭和包裹。需要注意的重点是闭包函数的作用域关系在函数定义阶段就固定死了与调用位置无关。
1.什么是闭包函数一个函数的返回值是另外一个函数返回的函数调用父函数内部的变量如果返回的函数在外部被执行就产生了闭包 2.闭包函数的作用使函数外部能够调用函数内部放入属性和方法 3.闭包函数的优缺点 优点使函数外部能够调用函数内部放入属性和方法 缺点闭包操作导致整个函数的内部环境被长久保存占用大量内存
__closure__属性。Python给内部函数添加了这个属性来携带内部函数用到的外部函数中的变量。 闭包作用
数据隐藏
DRY 原则
闭包
闭包函数使用场景
封装这种场景叫做封装。 内部函数可以方便的生成新的函数装饰器对Python至关重要。这也是内部函数的主要使用场景。