1. # 函数 —— 2天
  2. # 函数的定义和调用
  3. # def 函数名(形参):
  4. #函数体
  5. #return 返回值
  6. #调用 函数名(实参)
  7. # 站在形参的角度上 : 位置参数,*args,默认参数(陷阱),**kwargs
  8. # 站在实参的角度上 : 按照位置传,按照关键字传
  9. # 返回值:没有返回值 返回一个值 返回多个值
  10. # 接收返回值:没有返回值不接收,返回一个值用一个变量接收,返回多个值用一个变量或者对应数目的变量接收
  11. # 闭包函数 —— 在内部函数引用外部函数的变量
  12. # 装饰器函数—— 装饰器一定是闭包函数
  13. # 装饰器的作用 : 在不改变原来函数的调用方式的情况下 在这个函数的前后添加新的功能
  14. # 完美的符合了一个开发原则 :开放封闭原则
  15. # 对扩展是开发的
  16. # 对修改是封闭的
  17. # 基础的装饰器
  18. # from functools import wraps
  19. # def wrapper(func):
  20. # @wraps(func)
  21. # def inner(*args,**kwargs):
  22. # '''在函数被调用之前添加的代码'''
  23. # ret = func(*args,**kwargs) # func是被装饰的函数 在这里被调用
  24. # '''在函数被调用之后添加的代码'''
  25. # return ret
  26. # return inner
  27. # 使用 —— @wrapper
  28. # @wrapper
  29. # def func(): #inner
  30. # pass
  31. #
  32. # func.__name__
  33. # 带参数的装饰器
  34. # @wrapper -- > @warapper(argument)
  35. # 三层嵌套函数
  36. # def outer(形参):
  37. # def wrapper(func):
  38. # def inner(*args,**kwargs):
  39. # '''在函数被调用之前添加的代码'''
  40. # ret = func(*args,**kwargs) # func是被装饰的函数 在这里被调用
  41. # '''在函数被调用之后添加的代码'''
  42. # return ret
  43. # return inner
  44. # return wrapper
  45. # @outer(True)
  46. # def func():
  47. # pass
  48. # 多个装饰器装饰一个函数
  49. # 俄罗斯套娃
  50.  
  51. #def wrapper1(func):
  52. # @wraps(func)
  53. # def inner(*args,**kwargs):
  54. # print('before 1')
  55. # print('******')
  56. # ret = func(*args,**kwargs) # func是被装饰的函数 在这里被调用
  57. # '''在函数被调用之后添加的代码'''
  58. # return ret
  59. # def wrapper2(func):
  60. # @wraps(func)
  61. # def inner(*args,**kwargs):
  62. # print('before 2')
  63. # ret = func(*args,**kwargs) # func是被装饰的函数 在这里被调用
  64. # '''在函数被调用之后添加的代码'''
  65. # return ret
  66. # @wrapper1
  67. # @wrapper2
  68. # def func():
  69. # print('111')
  70. # 迭代器和生成器 —— 两天
  71. # 内置函数 —— 两天

python 复习函数 装饰器的更多相关文章

  1. python基础—函数装饰器

    python基础-函数装饰器 1.什么是装饰器 装饰器本质上是一个python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能. 装饰器的返回值是也是一个函数对象. 装饰器经常用于有切 ...

  2. python基础-----函数/装饰器

    函数 在Python中,定义一个函数要使用def语句,依次写出函数名.括号.括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回. 函数的优点之一是,可以将代码块与主程 ...

  3. Decorator——Python初级函数装饰器

    最近想整一整数据分析,在看一本关于数据分析的书中提到了(1)if __name__ == '__main__' (2)列表解析式 (3)装饰器. 先简单描述一下前两点,再详细解说Python初级的函数 ...

  4. day11 python之函数装饰器

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

  5. python 匿名函数&装饰器

    匿名函数 关键字lambda表示匿名函数,冒号前面的x表示函数参数匿名函数有个限制,就是只能有一个表达式,不用写return,返回值就是该表达式的结果. >>> list(map(l ...

  6. python闭包函数&装饰器

    一.函数引用 函数可以被引用 函数可以被赋值给一个变量 def hogwarts(): print("hogwarts") # hogwarts() # 函数调用 print(ho ...

  7. Python之函数装饰器

    在实际中,我们可能需要在不改变函数源代码和调用方式的情况下,为函数添加一些新的附加功能,能够实现这种功能的函数我们将其称之为装饰器.装饰器本质上其实还是是一个函数,用来装饰其它函数,为函数添加一些附加 ...

  8. python 之 函数 装饰器

    5.8 装饰器 1 开放封闭原则 软件一旦上线后,就应该遵循开放封闭原则,即对修改源代码是封闭的,对功能的扩展是开放的 也就是说我们必须找到一种解决方案: 能够在不修改一个功能源代码以及调用方式的前提 ...

  9. Python中函数装饰器及练习

    )])   ,,],)

随机推荐

  1. dwr2.0版本的demo

        谈起DWR,这个东西在上学的时候接触过,但工作之后就再也没有用过.       对DWR的印象是不手写AJAX,使用JavaScript调用java后台的代码,就如同调用前台代码一样.     ...

  2. Oracle 通过undo块查看事务信息

    数据库版本:Oracle 11.2.0.3 RAC 实验目的:通过undo块查看Oracle事务信息 实验细节:1 开始一个事务SQL> select * from t1; ID NAME--- ...

  3. CRM订单状态的Open, In process和Completed这些条目是从哪里来的

    Service Order的状态字段里的这些字段从哪里带出来的?我们可能会想当然的认为是从后台配的Status profile里带出来的.事实并非如此. 这个transaction type根本没有分 ...

  4. OC @protocol(声明协议 )

    @protocol Study; int main(int argc, const char * argv[]) { @autoreleasepool { Student *stu = [[[Stud ...

  5. python:验证客户端链接的合法性与socketserver

    一.验证客户端链接的合法性 from socket import * import hmac,os secret_key=b'linhaifeng bang bang bang' def conn_a ...

  6. JZ2440学习笔记之通过J-Link单步裸机程序(Keil+J-Link)

    我们还是使用JZ2440学习笔记之第一个裸机程序(Keil-MDK)里面的程序,但是把延时拿掉,要不然单步的时候一直在delay里面: int main(void) { // Set GPF4/5/6 ...

  7. 梯度下降(HGL)

    线性回归:是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法. 对于一般训练集:                参数系统为:      线性模型为:      损 ...

  8. 访问google的若干解决办法

    据悉,海外谷歌持续被屏蔽,所有海外服务均无法访问,也无法使用google搜索,之前DNS域名污染系统攻击造成google本身故障的假象,但是现在,谷歌服务器IP的屏蔽以及443端口的屏蔽,大陆用户将无 ...

  9. 了解Mysql与MariaDb的关系

    MariaDB是MySQL源代码的一个分支,随着Oracle买下Sun,MySQL也落入了关系型数据库王者之手.在意识到Oracle会对MySQL许可做什么后便分离了出来(MySQL先后被Sun.Or ...

  10. LeetCode17.电话号码的字母组合 JavaScript

    给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合. 给出数字到字母的映射如下(与电话按键相同).注意 1 不对应任何字母. 示例: 输入:"23" 输出:[&quo ...