ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

每天学一点——装饰器

2022-01-11 06:00:38  阅读:137  来源: 互联网

标签:index 执行 函数 每天 time print 一点 装饰


装饰器

 

 

今日内容概要

  • 装饰器的概念
  • 装饰器的简易版本
  • 装饰器的进阶版本

  • 装饰器的练习题(认证功能)

  • 装饰器的固定模板

  • 装饰器的语法糖(简化代码)

  • 有参装饰器(最复杂)

今日内容详细

装饰器的概念

     装饰器不是一个新的概念,而是空间名称,闭包函数等等的组合就是装饰器

 装饰:给函数增加额外的功能

 器:就是工具

装饰器的核心思想:在不改变原有函数的代码情况和原有调用方式的基础上增加额外的功能

def index():
    pass

index()

'''给index函数统计执行时间'''

储备知识:
     time模块
      import time # 模块

1.时间戳,他是执行的这一刻距离1970-1-1的秒数

print(tine.time.())

        2.原地等待三秒

def index():
      time.sleep(3)
      print('from index')

         # 1. 在函数执行之前打印一个时间节点
               start_time = time.time()
               index()

         # 2. 等待函数执行完毕之后,在打印一个时间节点
               end_time = time.time()

         # 3. 总的执行时间就是两个的差值
                print(end_time - start_time)

 装饰器的简易模板

    例:统计函数的执行时间

一定要记住装饰器的核心思想:在不改变原函数的代码情况和原因调用方式的基础上,增加额外的功能。

 

 装饰器的进阶版本(解救函数的传参问题)

 装饰器练习题(认证功能)

调用index函数之前,需要输入用户名和密码,并且用户名和密码必须正确

 

装饰器的固定模板

def outer(func):
       def inner():
               print('函数执行之前要执行的代码')
               res = func()
               print('函数执行之后要执行的代码')
               return res

      return inner

装饰器的语法糖

装饰器语法糖的执行流程:
把语法糖下面紧贴着的函数名当成参数传递给装饰器函数参数

标签:index,执行,函数,每天,time,print,一点,装饰
来源: https://www.cnblogs.com/fubuqideliuadou/p/15786744.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有