day11

1、装饰器

  1. import time
  2. # print(time.time()) # 点数前边是从1970年到现在过了多少秒
  3. # time.sleep(10) # 让程序执行到这里停一会儿
  4.  
  5. #
  6. # # print(time.time()) # 点数前边是从1970年到现在过了多少秒
  7. # # time.sleep(10) # 让程序执行到这里停一会儿
  8. #
  9. #
  10. # # 增加功能
  11. # def timer(f): # 装饰器函数
  12. # def inner():
  13. # start = time.time()
  14. # ret = f() # 被装饰的函数
  15. # end = time.time()
  16. # print(end - start)
  17. # return ret
  18. # return inner
  19. # @timer # 语法糖,不用下边的那个调用函数
  20. # def func():
  21. # time.sleep(1)
  22. # print('大家哈')
  23. # return '新年好'
  24. # 调用函数
  25. # func = timer(func)
  26.  
  27. # print(func())
  28.  
  29. # 原则:开放封闭原则
  30. # 开放:对扩展是开放的
  31. # 封闭:对修改是封闭的

装饰器的基础使用

2、带参数的函数装饰器

  1. # 装饰带参数函数装饰器
  2. # def timer(f): # 装饰器函数
  3. # def inner(*args, **kwargs):
  4. # start = time.time()
  5. # ret = f(*args, **kwargs) # 被装饰的函数
  6. # end = time.time()
  7. # print(end - start)
  8. # return ret
  9. #
  10. # return inner
  11. #
  12. #
  13. # @timer # 语法糖,不用下边的那个调用函数
  14. # def func(a, b):
  15. # time.sleep(1)
  16. # print('大家哈', a, b)
  17. # return '新年好'
  18. #
  19. #
  20. # @timer
  21. # def funcl(a):
  22. # time.sleep(1, )
  23. # print('大家哈', a)
  24. # return '新年好'
  25. #
  26. #
  27. # func('你好', b=8)
  28. # funcl('hello')

带参数的装饰器(*args,**args)

3、装饰器的固定模式

  1. # 固定模式
  2.  
  3. def wrapper(f): # 装饰器函数,fhi被装饰的函数
  4. def inner(*args, **kwargs):
  5. '''在被装饰函数之前要做的事'''
  6. ret = f(*args, **kwargs) # f是被装饰的函数
  7. '''在被装饰函数之后要做的事'''
  8. return ret
  9. return inner
  10.  
  11. @wrapper # 语法糖,不用下边的那个调用函数
  12. def func(a, b):
  13. time.sleep(1)
  14. print('大家哈', a, b)
  15. return '新年好'

装饰器的固定模式

day12

1、

day11-15,装饰器的更多相关文章

  1. day11(python)装饰器

    def wrapper(f):#1 def inner(*args,**kwargs):#3 ret = f(*args,**kwargs)#5 return ret#8 return inner#4 ...

  2. python --- 15 装饰器

    装饰器 一.原则,目的 开闭原则: 对功能的扩展开放,对代码的修改是封闭的(不可修改的)    目的:在目标函数前或后插入一段新的代码,不改变源代码 二.装饰器的通用语法 三.多个装饰器修饰同一个函数 ...

  3. day 15 装饰器

    装饰器(重点,难点) 开闭原则:             对功能的扩展开放            对代码的修改是封闭的 在目标函数前和后插入一段新的代码.不改变原来的代码 通用装饰器写法: # 存在的 ...

  4. day11 - 15(装饰器、生成器、迭代器、内置函数、推导式)

    day11:装饰器(装饰器形成.装饰器作用.@语法糖.原则.固定模式) 装饰器形成:最简单的.有返回值的.有一个参数的.万能参数 函数起的作用:装饰器用于在已经完成的函数前后增加功能 语法糖:使代码变 ...

  5. day11 装饰器---函数的使用方法

    这个是一个难点,以后面试会经常出现的,要搞懂! 装饰器升级版,进阶内容1: def outer(flag): def wrapper(func): def inner(*args,**kwargs): ...

  6. day11:装饰器

    1,引子,计算函数的运行时间: import time def func(): time.sleep(0.01) # 为了计算运行时间差的时候有值 print("func") de ...

  7. day11.装饰器初识

    1.开放封闭原则 原则: 开放封闭原则,对扩展是开放的,对修改是封闭的. 封版概念:当写好一个功能以后,就不可以再修改此函数,避免下面一系列的调用产生错误. 因此产生了装饰器 2.装饰器形成过程 我们 ...

  8. 15 python 初学(闭包,函数装饰器)

    这一部分很重要,一定要透彻理解.可参考大神博客:  http://www.cnblogs.com/yuanchenqi/articles/5830025.html 闭包: 如果在一个内部函数里,对在外 ...

  9. Day11 Python基础之装饰器(高级函数)(九)

    在python中,装饰器.生成器和迭代器是特别重要的高级函数   https://www.cnblogs.com/yuanchenqi/articles/5830025.html 装饰器 1.如果说装 ...

  10. day11 python之函数装饰器

    一,什么是装饰器? 装饰器本质上就是一个python函数,他可以让其他函数在不需要做任何代码变动的前提下,增加额外的功能,装饰器的返回值也是一个函数对象. 装饰器的应用场景:比如插入日志,性能测试,事 ...

随机推荐

  1. fedora安装了phpmyadmin后, mariadb无法启动?

    参考:http://www.linuxidc.com/Linux/2015-10/123945.htm where, which, when,等不但可以用在从句中, 而且可以用在 动词不定式中, 如: ...

  2. sonarqube中new issue的标准

    https://docs.sonarqube.org/latest/user-guide/issues/#header-4 Understanding which Issues are "N ...

  3. 题解——loj6280 数列分块入门4 (分块)

    分块维护一个区间和 然后记得更新的时候左边角块的tag不要打错到右边角块 #include <cstdio> #include <algorithm> #include < ...

  4. [idea] - 项目启动报错Process finished with exit code 1

    今天运行项目发现一个bug, "C:\Program Files\Java\jdk1.8.0_191\bin\java.exe" -XX:TieredStopAtLevel=1 - ...

  5. LOJ 534 花团(线段树+dfs栈)

    题意 https://loj.ac/problem/534 思路 又是复杂度错误的一题,\(O(n^2\log n)\) 能过 \(15000\) . 虽然看起来强制在线,其实是一道假的在线题.首先按 ...

  6. Vue学习一:{{}}html模板使用方法

    本文为博主原创,未经允许不得转载: 之前自学了vue,在项目中应用了vue,由于是第一次使用,感觉非常强大,使用也非常方便,趁有时间,总结一下vue学习过程中 各个指令的使用方法,只要掌握了vue的指 ...

  7. SQLServer代理新建或者编辑作业报错

    SQLServer代理新建或者编辑作业的时候报错如下 错误信息: 标题: Microsoft SQL Server Management Studio------------------------- ...

  8. 如何查找CpG Islands, CpG shores等 --转载

    转载自: http://blog.sciencenet.cn/blog-306699-1033567.html 在homo species物种,随着研究的深入,注释信息不断丰富 针对CpG Islan ...

  9. 七牛云存储上传自有证书开启https访问

    虽然七牛云存储也提供免费SSL证书申请,但我就喜欢用其他平台申请的,于是在腾讯云申请了免费SSL证书,正准备在七牛上传,弹出的界面却让我傻了眼,如下图所示: 腾讯免费SSL证书提供了不同服务器环境的版 ...

  10. java环境变量---找不到或无法加载主类

    默认安装在C:\ProgramFiles\Java\jdk1.7.0目录下 环境变量配置为 PATH=.;%JAVA_HOME%\bin CLASSPATH=.;%JAVA_HOME%\lib\dt. ...