当前位置: 首页 > wzjs >正文

acg大神做的网站长沙专业外贸网站建设

acg大神做的网站,长沙专业外贸网站建设,动效做的好的网站,中国菲律宾友谊装饰器(Decorator)本质上是一个返回函数的函数 主要作用是:在不修改原函数代码的前提下,给函数增加额外的功能 比如:增加业务,日志记录、权限验证、执行时间统计、缓存等场景 my_decorator def func():pas…

装饰器(Decorator)本质上是一个返回函数的函数
主要作用是:在不修改原函数代码的前提下,给函数增加额外的功能
比如:增加业务,日志记录、权限验证、执行时间统计、缓存等场景

@my_decorator
def func():pass# 等价于:
def func():pass
func = my_decorator(func)

1、闭包

def outer(x):def inner(y):return x + yreturn inneradd5 = outer(5)
print(add5(3))  # 输出 8

闭包(Closure)指一个函数定义在另一个函数内部,并且这个内部函数引用了外部函数的变量。即使外部函数已经返回了,内部函数依然**“记住”**并可以访问这些变量
就如这里的x

功能
  • 保存函数执行时的“上下文”;

  • 用于延迟计算或构造回调函数;

  • 实现数据隐藏(类似于面向对象中的私有变量);

  • 替代某些简单场景中的类。

2、装饰器基础

装饰器本质上就是闭包的一种应用,用于在不修改函数源代码的情况下增强函数功能


def decorator(func):def wrapper(*args, **kwargs):start_time = time.time()result = func(*args, **kwargs)stop_time = time.time()print(f'running_time is {stop_time - start_time}')return resultreturn wrapper@decorator   # double=decorator(double)
def double(x):time.sleep(1) # 模拟耗时return x*2
double(10)

这里在原本的基础上增加了(统计函数执行时间)功能

3、保留函数元数据

使用装饰器后
装饰器会覆盖原函数的元数据
在这里插入图片描述
使用functools.wraps装饰内层函数可保留原函数元数据

import functools
import time# 装饰器outer
def decorator(func):@functools.wraps(func)def wrapper(*args, **kwargs):'''这里是wrapper的注释'''start_time = time.time()result = func(*args, **kwargs)stop_time = time.time()print(f'running_time is {stop_time - start_time}')return resultreturn wrapper
@decorator   # double=decorator(double)
def double(x):'''这里是doubled的注释'''time.sleep(1) # 模拟耗时return x*2
double(10)
print(double.__name__)
print(double.__doc__)

在这里插入图片描述

4、带参数的装饰器

需要使用三层函数来实现。最外层函数接收装饰器参数,中间层函数接收原函数,最内层函数完成对原函数的调用以及附加功能。

def timer(time_consume):def decorator(func):@functools.wraps(func)def wrapper(*args, **kwargs):start_time = time.time()result = func(*args, **kwargs)stop_time = time.time()if (stop_time - start_time>time_consume):print(f'running is {stop_time - start_time}')print(f'{func.__name__} is longer')return resultreturn wrapperreturn decorator
@timer(0.8)   # double=timer(0.8)(double)
def double(x):time.sleep(1) # 模拟耗时return x*2
double(10)

文章转载自:

http://u9UauQNx.rqfzp.cn
http://aTGMD32I.rqfzp.cn
http://AUdQRt0W.rqfzp.cn
http://xyRW7lxL.rqfzp.cn
http://IMWpDWVv.rqfzp.cn
http://TdIuH7qZ.rqfzp.cn
http://oRdJEZve.rqfzp.cn
http://5KkpvInK.rqfzp.cn
http://FPnk0kgS.rqfzp.cn
http://wwi6HPPj.rqfzp.cn
http://MhASdLRO.rqfzp.cn
http://cUqn74IU.rqfzp.cn
http://VMxAWeAU.rqfzp.cn
http://8UdmO2A0.rqfzp.cn
http://4LqVdYeI.rqfzp.cn
http://cS67fklL.rqfzp.cn
http://gQLW2D4A.rqfzp.cn
http://tcaA3mwg.rqfzp.cn
http://vemFgkdZ.rqfzp.cn
http://bxoAtMu4.rqfzp.cn
http://v9uvtrlJ.rqfzp.cn
http://oDmKSNWi.rqfzp.cn
http://3OtfVKxu.rqfzp.cn
http://nmnaM2ji.rqfzp.cn
http://FDEQgfdd.rqfzp.cn
http://SXOfhfVA.rqfzp.cn
http://eMmgsIqH.rqfzp.cn
http://OFssffQk.rqfzp.cn
http://OfTABbNK.rqfzp.cn
http://045DC579.rqfzp.cn
http://www.dtcms.com/wzjs/740702.html

相关文章:

  • 8图片这样的网站怎么做的网站提示危险怎么办
  • 网站的logo在百度怎么显示不出来网站流量图片生成
  • 国产软件开发平台北京seo编辑
  • 穆棱市城乡建设局网站河北省建设机械协会网站
  • asp个人网站源码下载企业网站建设报价明细表
  • 想学做网站从哪里入手信息流优化师发展前景
  • 网站报价预算书深圳网站备案
  • 阿里云网站建设部署与发布宁波seo关键词优化案例
  • 织梦设置中英文网站网站制作中搜索栏怎么做
  • 婚恋网站女代我做彩票网站建设流程
  • 广州网站建设第一公司套网站模板软件
  • 建筑网站首页网站建设小西门
  • 网站建设全包广州wordpress 显示标题
  • 橙色网站模版福州网络推广建站
  • 大连做网站哪家好园艺wordpress模板
  • 广陵区建设局网站企业建站网站认证
  • 揭阳建网站互联网信息服务 网站备案
  • 深圳网站制作建设公司推荐上海虹口网站制作
  • 只买域名不建网站企业网站模板网 凡建站
  • 南宁网站seo优化公司wordpress如何修改主题名称
  • 淘宝网站可以做seo吗wordpress 常用小工具
  • 中国建设的网站个人网站备案审批
  • 应用商店网站源码大理公司网站建设
  • 张家港阿里网站建设网站续费一年多少钱
  • 长沙网站开发设计城市联盟网站怎么做
  • 网站建设及发布的流程图智慧团建密码是什么
  • 长清区网站建设宣传哪些网站可以免费发帖做推广
  • 医院网站建设方案招标文件做网站 需要了解什么
  • 霸州做网站1766534168h5小程序开发
  • 长春制作网站企业织梦小说网站模板下载地址