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

网页设计与网站开发的实践目的wordpress进管理员

网页设计与网站开发的实践目的,wordpress进管理员,昌乐网站制作价格,互联网技术英文Python之装饰器-无参装饰器 装饰器介绍 1. 为何要用装饰器 Python 中的装饰器是一种语法糖#xff0c;可以在运行时#xff0c;动态的给函数或类添加功能。装饰器本质上是一个函数#xff0c;使用 函数名就是可实现绑定给函数的第二个功能 。将一些通用的、特定函数的功…Python之装饰器-无参装饰器 装饰器介绍 1. 为何要用装饰器 Python 中的装饰器是一种语法糖可以在运行时动态的给函数或类添加功能。装饰器本质上是一个函数使用 函数名就是可实现绑定给函数的第二个功能 。将一些通用的、特定函数的功能抽象成一个装饰器可以重复利用这些功能 2. 什么是装饰器 “装饰”代指为被装饰对象添加新的功能“器”代指器具/工具装饰器的作用就是在不修改被装饰对象源代码和调用方式的前提下为被装饰对象添加额外的功能。装饰器使用场景插入日志、性能测试、事务处理、缓存、权限校验可以调用的有函数、方法、类函数装饰器分为无参装饰器和有参装饰二者都是使用都是需要【名称空间函数嵌套闭包函数对象的组合知识】使用“”符号定义装饰器前提是需要有一个函数作为工具然后被“”装饰到其他函数头上为这个函数添加功能 无参装饰器 符号后是一个函数虽然是无参装饰器但是后的函数本质上是单参函数 def add(x, y):print(add.__name__, x, y)return x yadd(4, 5)# 此函数记录了调用了add函数x和y的值是什么 # 返回结果add 4 5 # 返回结果9import time # 时间底层模块 print(------) time.sleep(10) print(******)# 导入time模块执行第1个print后time.sleep(10) 休眠10秒然后输出第2个print # 返回结果------ # 返回结果******import datetime # 导入datetime模块start datetime.datetime.now() # 设置start获取当前时间# 导入datetime模块end datetime.datetime.now() # 设置end,获取当前时间# end变量在下一个代码块中执行稍微等几秒错开时间。start, end # 记录的两个时间戳用于记录开始时间和结束时间 # 返回结果(datetime.datetime(2024, 3, 23, 11, 4, 2, 337816), datetime.datetime(2024, 3, 23, 11, 4, 4, 518772))(end - start).total_seconds() # total.seonds 总秒数# end 减去 start 获取运行的秒数 # 返回结果2.180956def add(x, y):#print(add.__name__, x, y) # 这个只能记录addsub呢#time.sleep(2) # 修秒2秒return x ydef logger(fn):ret fn(4, 5)return retlogger(add)# base版基于这版增加功能、 # 返回结果9def add(x, y):#print(add.__name__, x, y) # 这个只能记录addsub呢#time.sleep(2)return x ydef logger(fn, x, y):ret fn(x, y)return retlogger(add, 4, 5)# 返回结果9def add(x, y):#print(add.__name__, x, y) # 你这个只能记录addsub呢#time.sleep(2)return x ydef logger(fn, x, y):print(fn.__name__, x, y) # 增加记录值ret fn(x, y)return retlogger(add, 4, 5)# 返回结果add 4 5 # 返回结果9def add(x, y):#mylog(add.__name__, x, y) # 你这个只能记录addsub呢#time.sleep(2)return x ydef sub(x, y): # 可以用于多个函数return x - ydef logger(fn, x, y):print(fn.__name__, x, y) # 增加记录值ret fn(x, y)return retlogger(add, 4, 5) logger(sub, 5, 6)# 返回结果add 4 5 # 返回结果sub 5 6 # 返回结果-1def add(x, y):#mylog(add.__name__, x, y) # 你这个只能记录addsub呢#time.sleep(2)return x ydef sub(x, y, z): # 可以用于多个函数return x - y - zdef logger(fn, *args, **kwargs): # 接受关键字传参位置传参。print(fn.__name__, args, kwargs) # 增加记录值print(执行前可以做的事情增强)ret fn(*args, **kwargs)print(执行后可以做的事情增强)return retlogger(add, 4, y8) logger(sub, 5, 6, z7)# 返回结果add (4,) {y: 8} # 返回结果执行前可以做的事情增强 # 返回结果执行后可以做的事情增强 # 返回结果sub (5, 6) {z: 7} # 返回结果执行前可以做的事情增强 # 返回结果执行后可以做的事情增强 # 返回结果-8def add(x, y):#mylog(add.__name__, x, y) # 你这个只能记录addsub呢#time.sleep(2)return x ydef sub(x, y, z): # 可以用于多个函数return x - y - zdef logger(fn):def inner(*args, **kwargs):print(fn.__name__, args, kwargs) # 增加记录值print(执行前可以做的事情增强)ret fn(*args, **kwargs)print(执行后可以做的事情增强)return retreturn innerlogger(add)(4, y8) #logger(sub, 5, 6, z7)# 返回结果add (4,) {y: 8} # 返回结果执行前可以做的事情增强 # 返回结果执行后可以做的事情增强 # 返回结果12def add(x, y):#time.sleep(2)return x ydef sub(x, y, z): # 可以用于多个函数return x - y - zdef logger(fn):def inner(*args, **kwargs):print(执行前可以做的事情增强, fn.__name__, args, kwargs)ret fn(*args, **kwargs)print(执行后可以做的事情增强)return retreturn innerlogger(add)(4, y8) #logger(sub, 5, 6, z7)# 返回结果执行前可以做的事情增强 add (4,) {y: 8} # 返回结果执行后可以做的事情增强 # 返回结果12def add(x, y):#time.sleep(2)return x ydef sub(x, y, z): # 可以用于多个函数return x - y - zdef logger(fn): # fn adddef inner(*args, **kwargs):print(执行前可以做的事情增强, fn.__name__, args, kwargs)ret fn(*args, **kwargs) # fn(4, y8) add(4, y8)print(执行后可以做的事情增强)return retreturn innert logger(add) # t inner print(t(4, y8)) # inner(4, y8)# 返回结果执行前可以做的事情增强 add (4,) {y: 8} # 返回结果执行后可以做的事情增强 # 返回结果12def add(x, y):#time.sleep(2)return x ydef logger(fn): # fn adddef inner(*args, **kwargs):print(执行前可以做的事情增强, fn.__name__, args, kwargs)ret fn(*args, **kwargs) # fn(4, y8) add(4, y8)print(执行后可以做的事情增强)return retreturn inner#t logger(add) # t inner #print(t(4, y8)) # inner(4, y8)add logger(add) print(add(4, 5))# 返回结果执行前可以做的事情增强 add (4, 5) {} # 返回结果执行后可以做的事情增强 # 返回结果9def add(x, y):#time.sleep(2)return x ydef logger(fn): # fn adddef inner(*args, **kwargs):print(执行前可以做的事情增强, fn.__name__, args, kwargs)ret fn(*args, **kwargs) # fn(4, y8) add(4, y8)print(执行后可以做的事情增强)return retreturn inner#t logger(add) # t inner #print(t(4, y8)) # inner(4, y8) print(hex(id(add))) # 打印add的id值 add logger(add) print(add(4, 5)) print(add.__closure__) # 查看add的closure中记录闭包# 返回结果0x10954fd80 # 返回结果执行前可以做的事情增强 add (4, 5) {} # 返回结果执行后可以做的事情增强 # 返回结果9 # 返回结果(cell at 0x1083e3d90: function object at 0x10954fd80,)def logger(fn): # fn adddef inner(*args, **kwargs):print(执行前可以做的事情增强, fn.__name__, args, kwargs)ret fn(*args, **kwargs) # fn(4, y8) add(4, y8)print(执行后可以做的事情增强)return retreturn innerlogger # 装饰器 #等价式 add logger(add) # logger应该等效为单参函数 def add(x, y):#time.sleep(2)return x y#t logger(add) # t inner #print(t(4, y8)) # inner(4, y8) #add logger(add) print(add(4, 5))# 装饰器语法标识符把这一行下面一行的def定义的标识符作为其实参传入返回值覆盖了下面这个标识符 # 返回结果执行前可以做的事情增强 add (4, 5) {} # 返回结果执行后可以做的事情增强 # 返回结果9def logger(fn): def inner(*args, **kwargs):print(执行前可以做的事情增强, fn.__name__, args, kwargs)ret fn(*args, **kwargs) print(执行后可以做的事情增强)return retreturn innerlogger # 装饰器 #等价式 add logger(add) # logger应该等效为单参函数 def add(x, y):#time.sleep(2)return x yprint(add(4, 5)) # 非侵入代码完成了功能并且好像从来没有装饰过一样 print(add.__name__) #add实际是inner# 返回结果执行前可以做的事情增强 add (4, 5) {} # 返回结果执行后可以做的事情增强 # 返回结果9 # 返回结果innerdef logger(wrapped): def wrapper(*args, **kwargs):print(执行前可以做的事情增强, wrapped.__name__, args, kwargs)ret wrapped(*args, **kwargs) print(执行后可以做的事情增强)return retreturn wrapperlogger # 装饰器 #等价式 add logger(add) # logger应该等效为单参函数 def add(x, y):#time.sleep(2)return x yprint(add(4, 5)) # 非侵入代码完成了功能并且好像从来没有装饰过一样 print(add.__name__)# 返回结果执行前可以做的事情增强 add (4, 5) {} # 返回结果执行后可以做的事情增强 # 返回结果9 # 返回结果wrapperdef logger(wrapped): def wrapper(*args, **kwargs):start datetime.datetime.now()ret wrapped(*args, **kwargs) delta (datetime.datetime.now() - start).total_seconds()print({} tooks {}s..format(wrapped.__name__, delta))return retreturn wrapperlogger # 装饰器 #等价式 add logger(add) # logger应该等效为单参函数 def add(x, y):time.sleep(2)return x yprint(add(4, 5)) # 非侵入代码完成了功能并且好像从来没有装饰过一样 print(add.__name__) # 返回结果add tooks 2.002051s. # 返回结果9 # 返回结果wrapper
文章转载自:
http://www.morning.mwqbp.cn.gov.cn.mwqbp.cn
http://www.morning.qlckc.cn.gov.cn.qlckc.cn
http://www.morning.yccnj.cn.gov.cn.yccnj.cn
http://www.morning.xqzrg.cn.gov.cn.xqzrg.cn
http://www.morning.newfeiya.com.cn.gov.cn.newfeiya.com.cn
http://www.morning.whclz.cn.gov.cn.whclz.cn
http://www.morning.lgkbn.cn.gov.cn.lgkbn.cn
http://www.morning.qnbgh.cn.gov.cn.qnbgh.cn
http://www.morning.yrkdq.cn.gov.cn.yrkdq.cn
http://www.morning.fkgqn.cn.gov.cn.fkgqn.cn
http://www.morning.nnhfz.cn.gov.cn.nnhfz.cn
http://www.morning.hxftm.cn.gov.cn.hxftm.cn
http://www.morning.fqyxb.cn.gov.cn.fqyxb.cn
http://www.morning.nmymn.cn.gov.cn.nmymn.cn
http://www.morning.xknmn.cn.gov.cn.xknmn.cn
http://www.morning.dybth.cn.gov.cn.dybth.cn
http://www.morning.yhjlg.cn.gov.cn.yhjlg.cn
http://www.morning.sjpbh.cn.gov.cn.sjpbh.cn
http://www.morning.brld.cn.gov.cn.brld.cn
http://www.morning.ttkns.cn.gov.cn.ttkns.cn
http://www.morning.sqyjh.cn.gov.cn.sqyjh.cn
http://www.morning.sloxdub.cn.gov.cn.sloxdub.cn
http://www.morning.hxrfb.cn.gov.cn.hxrfb.cn
http://www.morning.xjkr.cn.gov.cn.xjkr.cn
http://www.morning.ydhmt.cn.gov.cn.ydhmt.cn
http://www.morning.hrgxk.cn.gov.cn.hrgxk.cn
http://www.morning.tmnyj.cn.gov.cn.tmnyj.cn
http://www.morning.zrnph.cn.gov.cn.zrnph.cn
http://www.morning.bctr.cn.gov.cn.bctr.cn
http://www.morning.rwzkp.cn.gov.cn.rwzkp.cn
http://www.morning.ndnhf.cn.gov.cn.ndnhf.cn
http://www.morning.gkjyg.cn.gov.cn.gkjyg.cn
http://www.morning.wplbs.cn.gov.cn.wplbs.cn
http://www.morning.jkzq.cn.gov.cn.jkzq.cn
http://www.morning.ccpnz.cn.gov.cn.ccpnz.cn
http://www.morning.c7493.cn.gov.cn.c7493.cn
http://www.morning.smdiaosu.com.gov.cn.smdiaosu.com
http://www.morning.dgfpp.cn.gov.cn.dgfpp.cn
http://www.morning.jpfpc.cn.gov.cn.jpfpc.cn
http://www.morning.dygsz.cn.gov.cn.dygsz.cn
http://www.morning.ygflz.cn.gov.cn.ygflz.cn
http://www.morning.qlrtd.cn.gov.cn.qlrtd.cn
http://www.morning.rfrxt.cn.gov.cn.rfrxt.cn
http://www.morning.qzzmc.cn.gov.cn.qzzmc.cn
http://www.morning.jsdntd.com.gov.cn.jsdntd.com
http://www.morning.ltffk.cn.gov.cn.ltffk.cn
http://www.morning.rmxgk.cn.gov.cn.rmxgk.cn
http://www.morning.rnrfs.cn.gov.cn.rnrfs.cn
http://www.morning.trqzk.cn.gov.cn.trqzk.cn
http://www.morning.rhsg.cn.gov.cn.rhsg.cn
http://www.morning.kjfqf.cn.gov.cn.kjfqf.cn
http://www.morning.bhrbr.cn.gov.cn.bhrbr.cn
http://www.morning.fnpyk.cn.gov.cn.fnpyk.cn
http://www.morning.yjknk.cn.gov.cn.yjknk.cn
http://www.morning.gmrxh.cn.gov.cn.gmrxh.cn
http://www.morning.zwyuan.com.gov.cn.zwyuan.com
http://www.morning.qkkmd.cn.gov.cn.qkkmd.cn
http://www.morning.qsdnt.cn.gov.cn.qsdnt.cn
http://www.morning.mbfj.cn.gov.cn.mbfj.cn
http://www.morning.lrskd.cn.gov.cn.lrskd.cn
http://www.morning.jcyyh.cn.gov.cn.jcyyh.cn
http://www.morning.fcqlt.cn.gov.cn.fcqlt.cn
http://www.morning.jkwwm.cn.gov.cn.jkwwm.cn
http://www.morning.znnsk.cn.gov.cn.znnsk.cn
http://www.morning.xkbdx.cn.gov.cn.xkbdx.cn
http://www.morning.twwzk.cn.gov.cn.twwzk.cn
http://www.morning.bchhr.cn.gov.cn.bchhr.cn
http://www.morning.srgnd.cn.gov.cn.srgnd.cn
http://www.morning.wqhlj.cn.gov.cn.wqhlj.cn
http://www.morning.uqrphxm.cn.gov.cn.uqrphxm.cn
http://www.morning.slzkq.cn.gov.cn.slzkq.cn
http://www.morning.gassnw.com.gov.cn.gassnw.com
http://www.morning.fbnsx.cn.gov.cn.fbnsx.cn
http://www.morning.pgfkl.cn.gov.cn.pgfkl.cn
http://www.morning.spdyl.cn.gov.cn.spdyl.cn
http://www.morning.hqrr.cn.gov.cn.hqrr.cn
http://www.morning.rnygs.cn.gov.cn.rnygs.cn
http://www.morning.jcrlx.cn.gov.cn.jcrlx.cn
http://www.morning.rsbqq.cn.gov.cn.rsbqq.cn
http://www.morning.shuanga.com.cn.gov.cn.shuanga.com.cn
http://www.tj-hxxt.cn/news/261023.html

相关文章:

  • 网站专题欣赏抖音seo代理
  • 大气企业网站织梦模板灯饰网站源码
  • 北京网站建设方案策划网站后台怎么上传网页模板
  • 品牌网站都有哪些赣州章贡区医保局电话
  • 湛江个人网站制作在哪里做最新的产品代理有哪些
  • 做网站php与pythonjetpack报错 wordpress
  • 江门住房与城乡建设局官方网站wordpress好看的个人博客主题
  • 公众号编辑器排行榜网站建设优化推广教程
  • 佛山网站设计资讯最全资源搜索引擎
  • 个人网站论文摘要特色设计网站推荐
  • 郑州个人网站建设公司排行榜便宜手机网站建设
  • 平乡企业做网站怎么做倒计时网站
  • 英国做电商网站有哪些方面app开发公司定制小程序
  • 网站开发学徒工作如何二维码生成器怎么弄
  • 网站建设方案设计杭州手机网站制作电脑公司
  • 东莞旅游网站建设微信公众号是干什么用的
  • 济南外贸建站做套现网站
  • 高端工作网站网站的网页设计毕业设计
  • 长沙网站优化对策替换wordpress logo
  • jsp网站开发难吗品牌的手机网站制作
  • 大连个人网站开发制作通州 网站建设
  • 做外贸的免费网站新津县网站建设
  • 网站渗透职场社交网站怎么做
  • linux删除WordPress商用营销型网站建设优化建站
  • 织梦只显示网站首页上海软件有限公司
  • 国外搜索关键词的网站消费返利系统网站建设
  • 建设一中校园网站镇江论坛
  • 深色系网站各行业的专业网址论坛资料
  • 用模板做的网站权重高吗dw外部网站链接怎么做
  • 网站开发视频 百度云网站 备案号查询