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

有没有接单做加工的网站小学生班级优化大师

有没有接单做加工的网站,小学生班级优化大师,美食网站建设策划书,wordpress short codePython中的装饰器一直是一个比较难理解的概念,我自己理解的就是用一个函数去修改另一个函数,主要是为另一个函数添加计时等功能,而且不用改变另一个函数,这样就大大减少了另一个函数的维护成本。 这个装饰器,英文名就…

Python中的装饰器一直是一个比较难理解的概念,我自己理解的就是用一个函数去修改另一个函数,主要是为另一个函数添加计时等功能,而且不用改变另一个函数,这样就大大减少了另一个函数的维护成本。

这个装饰器,英文名就是decorator,相关于把一个写好的程序添加一些新的功能,让这个程序变成多功能的。装饰器还可以传递参数,但如果要加参数就要多一层。

首先,我们看一个样例[1],有一个计算数字平方和的函数,我们添加一个装饰器elasped,来为它增加计算函数运行时间的功能。

一、不用@添加装饰器的写法

# 对目标函数进行elapsed装饰器函数的调用
# 返回一个装饰后的名字还是叫power_sum的函数
import time
def elapsed(target):"统计函数执行的耗时:"def decorated(*args,**kwargs):start = time.time()r = target(*args,**kwargs)end = time.time()print("函数执行耗时:", round(end - start, 2))return rreturn decorateddef power_sum(n):"计算并返回1到n之间每个数的平方的和"total = 0for i in range(1,n+1):total += i**2return total
if __name__ == "__main__":power_sum = elapsed(power_sum) # 相当于用装饰器函数elapsed调用了power_sum函数print(power_sum(1000000))

二、使用@加装饰器的调用方法

# 对目标函数进行elapsed装饰器函数的调用
# 返回一个装饰后的名字还是叫power_sum的函数
import time
def elapsed(target):"统计函数执行的耗时:"def decorated(*args,**kwargs):start = time.time()r = target(*args,**kwargs)end = time.time()print("函数执行耗时:", round(end - start, 2))return rreturn decorated@elapsed   # 相当于用装饰器函数elapsed调用了power_sum函数相当于这行代码:power_sum = elapsed(power_sum)
def power_sum(n):"计算并返回1到n之间每个数的平方的和"total = 0for i in range(1,n+1):total += i**2return total
if __name__ == "__main__":print(power_sum(1000000))

调用结果:

三、为装饰器加上参数的方法

现在为装饰器加上参数,把函数执行耗时的时间加上可以控制保留小数位数的参数precision,结果如下:

# 对目标函数进行elapsed装饰器函数的调用
# 返回一个装饰后的名字还是叫power_sum的函数
import time
def elapsed_precision(precision):def elapsed(target):"统计函数执行的耗时:"def decorated(*args,**kwargs):start = time.time()r = target(*args,**kwargs)end = time.time()print("函数执行耗时:", round(end - start, precision))return rreturn decoratedreturn elapsed#不写就没有装饰器效果,写了相当于这一句:power_sum = elapsed(power_sum) 也就是power_sum被装饰后又重新命名为power_sum函数
@elapsed_precision(3)# 这里的3就是装饰器的参数。
def power_sum(n):"计算并返回1到n之间每个数的平方的和"total = 0for i in range(1,n+1):total += i**2return total
if __name__ == "__main__":print(power_sum(10000000))

由上述代码可见,我们加装饰器后,原来的函数没有变化,我们只是通过装饰器给power_sum函数添加计时功能,传递了一个保留小数位数的参数precision。

四、学后反思

1. 装饰器是python学习中一个比较难理解的概念,因为我们一直把函数的参数局限为字符、列表、元组、字典这些常用的数据结构,但是如果我们把函数看成一个对象,把一个函数作为另一函数(装饰器)的参数来调用就好理解了。
2. 装饰器可以使Python编写的代码更容易维护,同时也可以为函数增加更多的功能,是Python程序编写过程中一个重要的工具。
3. 在我学习Python的过程中,我一直对装饰器、多线程、异步这些概念模糊不清楚。虽然也有意去学习,但很多时候是一知半解,后来通过B站学习和个人的思考慢慢把这些概念理解弄通。

http://www.zhongyajixie.com/news/14529.html

相关文章:

  • 深圳外贸营销型网站建设长沙靠谱的关键词优化
  • 大连能做网站的公司有seo技术培训唐山
  • 网站开发设计工程师职责简介阿里巴巴指数查询
  • 重庆网站策划网站优化排名
  • 用狐狸做logo的网站网站页面关键词优化
  • wordpress朗读句子插件百度网站优化排名
  • 北京公司建设网站2021最火关键词
  • 江北网站建设价格网络营销的概念
  • 简书 wordpress深圳高端seo外包公司
  • 广州市开发区建设局官方网站北京网站制作400办理多少钱
  • 什么网站上做奥数题软文发布平台媒体
  • 沈阳专业网站制作公司谷歌推广怎么操作
  • 湘西网站建设吧搜索引擎营销推广方案
  • 用手机做网站的app推广网址
  • 经营性网站可以进行非经营行网站备案吗优化技术基础
  • 有口碑的盐城网站开发今日头条新闻
  • 网易云播放器做网站播放专业竞价托管
  • 张家港企业网站建设产品推广运营方案
  • 衡水公司做网站网络营销策划方案怎么写
  • 四网合一网站建设网页分析报告案例
  • 北京做招聘网站的公司深圳企业网站制作
  • 深圳设计展2022深圳优化排名公司
  • 龙采科技做网站多少钱中国世界排名
  • 智恒企业网站管理系统交换友情链接的渠道有哪些
  • 设备 光速东莞网站建设免费推广方式都有哪些
  • 阜阳制作网站公司东莞百度推广排名优化
  • 视频网站如何推广旅游网站网页设计
  • 已有网站怎么修改国外网站制作
  • 张店免费做网站平面设计
  • 官方网站的重要性seo网站优化培训怎么样