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

手机购物网站 设计建设各网站需要多久

手机购物网站 设计,建设各网站需要多久,seo职位,wordpress需要的插件吗上下文管理(为加法函数计时)为加法函数计时使用装饰器显示该函数的执行时长使用上下文管理显示该函数的执行时长装饰器实现import timeimport datetimefrom functools import wrapsdef logger(fn):wraps(fn) # wraps(fn)(wrapper)def wrapper(*args, **kw):start datetime.dat…上下文管理(为加法函数计时)为加法函数计时使用装饰器显示该函数的执行时长使用上下文管理显示该函数的执行时长装饰器实现import timeimport datetimefrom functools import wrapsdef logger(fn):wraps(fn) # wraps(fn)(wrapper)def wrapper(*args, **kw):start datetime.datetime.now()ret fn(*args, **kw)delta (datetime.datetime.now() - start).total_seconds()print(delta)return retreturn wrapperloggerdef add(x, y):time.sleep(2)return x y上下文实现最简单实现增加__call__用法import timeimport datetimeclass TimeIt:def __init__(self, fn):self.fn fndef __enter__(self):self.start datetime.datetime.now()return selfdef __exit__(self, exc_type, exc_val, exc_tb):self.delta (datetime.datetime.now() - self.start).total_seconds()print(self.delta)def __call__(self, *args, **kwargs):ret self.fn(*args, **kwargs)return retdef add(x, y): This is addtime.sleep(2)return x ywith TimeIt(add) as foo:print(foo(3,4))需要增加初始化方法为下面__call__使用__enter__方法返回self是为了有了__call__方法以后可以这样使用with TimeIt(add) as foo: foo(3,4)因为有了__call__后实例变成可调用而foo就是实例化后的实例TimeIt(add)是将add函数名作为形参传进去改成装饰器import timeimport datetimeclass TimeIt:def __init__(self, fn):self.fn fndef __enter__(self):self.start datetime.datetime.now()return selfdef __exit__(self, exc_type, exc_val, exc_tb):self.delta (datetime.datetime.now() - self.start).total_seconds()print(self.delta)def __call__(self, *args, **kwargs):print(call)ret self.fn(*args, **kwargs)return retTimeIt # add TimeIt(add)def add(x, y): This is addtime.sleep(2)return x y# 上下文用法# with TimeIt(add) as foo:# print(foo(3,4))print(add(5,6))print(add.__doc__)print(add.__dict__)print(add.__name__)装饰器用法很简单直接在add函数上加个TimeIt这是由于TimeIt等价于add TimeIt(add)把add函数名作为实参传入到TimeIt类中就相当于为add函数加了一个类封装的功能或属性而这个时候我们发现用装饰器实现后直接走的是__call__方法中的语句块而上下文没有执行(因为没有用with..as语句)也就是说要么用with..as语句要么用装饰器方法这是两个方法(用with..as语句执行装饰器方法这样比较繁琐重复计算因题而异)但是如何解决文档字符串的问题怎么把add函数的配置信息也弄过来(看__doc__和__dict__就可以知道)解决文档字符串问题方法1把函数对象的文档字符串赋给类class TimeIt:def __init__(self, fn):self.fn fnself.__doc__ self.fn.__doc__self.__name__ self.fn.__name__self.__dict__ self.fn.__dict__方法2使用functools.wraps函数最终完整版import timeimport datetimefrom functools import wrapsclass TimeIt:This is Classdef __init__(self, fn):self.fn fn# 把函数对象的文档字符串赋给类# self.__doc__ self.fn.__doc__# self.__name__ self.fn.__name__# wraps wraps(fn)(wrapper)wraps(fn)(self) # wraps用法# def __enter__(self):# self.start datetime.datetime.now()# return self# def __exit__(self, exc_type, exc_val, exc_tb):# self.delta (datetime.datetime.now() - self.start).total_seconds()# print(self.delta)def __call__(self, *args, **kwargs):print(call)self.start datetime.datetime.now()ret self.fn(*args, **kwargs)delta (datetime.datetime.now() - self.start).total_seconds()print(delta)return retTimeIt # add TimeIt(add)def add(x, y): This is addtime.sleep(2)return x y# 上下文用法# with TimeIt(add) as foo:# print(foo(3,4))print(add(5,6))print(add.__doc__)print(add.__dict__)print(add.__name__)print(type(add))第15行的用法wraps(fn)(self)是根据这个wraps wraps(fn)(wrapper)来的wraps是带参装饰器fn就是带参wrapper是传入的实参简单来说wraps wraps(fn)(wrapper)就是把fn的配置信息赋值给wrapper所以wraps(fn)(self)就是把fn的配置信息赋值给实例(self就是实例化后的实例)本文来自投稿不代表Linux运维部落立场如若转载请注明出处http://www.178linux.com/88584
http://www.pierceye.com/news/983625/

相关文章:

  • 平台网站建设收费烟台网站的优化
  • 如何做提卡网站vue.js wordpress
  • 国家网站备案查询系统wordpress 主题 简洁
  • 建设商业网站html什么意思
  • 网站专题建设方案江苏省建设厅网站 杨洪海
  • 通化网站建设公司南江县住房和城乡建设局网站
  • 网站的外链是什么软件开发与网站开发的区别
  • 学做网站论坛vip账户了解网站开发的背景
  • 做3个网站需要多大的服务器科凡建站
  • 网站设计制作音乐排行榜44555pd永久四色端口
  • 网站优化方案教程如何注册chn域名网站
  • 怎样建设免费网站个别网站网速慢怎么做
  • 网页设计制作音乐排行榜一键seo提交收录
  • 网站推广要我营业执照复印件conoha wordpress
  • 免费行情软件app网站排行高质量外链网站
  • 免费解析网站制作网站开发项目实战视频
  • 柳州网站建设工作室基金会网站开发方案
  • 龙海网站建设微网站如何建设
  • 手机视频网站怎么做贵阳专业做网站
  • 网站建设题库vps上的网站运行太慢
  • 化妆品网站优化沧州网站制作公司
  • 专业优定软件网站建设上海seo服务
  • 网站充值怎么做的c2c平台的产品类型
  • 阿里去要企业网站建设方案书手机设计房子的软件3d下载
  • 凡科网站登录入轻博客网站开发
  • wordpress微信机器人订阅号性价比高seo网站优化
  • 网站建设全网推广亚马逊seo搜索什么意思
  • 做网站_你的出路在哪里android app for wordpress
  • 代刷网网站建设成都建立网站
  • 建设网站的费用预算商城网站制作