闭包(closure): 内嵌函数通过调用外部嵌套函数作用域内的变量,则这个内嵌函数就是闭包. 闭包必须满足三个条件: + 必须有一个内嵌函数 + 内嵌函数必须引用外部嵌套函数中的变量 + 外部函数的返回值必须是内嵌函数 装饰器(decorators):是一个函数,主要作用为包装一个函数或类.包装的 ...
分类:
编程语言 时间:
2020-02-27 23:31:34
阅读次数:
75
python中的装饰器分为两类:函数装饰器和类装饰器. here and here2 ...
分类:
编程语言 时间:
2020-02-22 19:54:04
阅读次数:
71
装饰器的原则 1)不修改被修饰函数的源代码; 2)不修改被修饰函数的调用方式; 装饰器的知识点 = 高阶函数 + 函数嵌套 + 闭包 1. 只用高阶函数写装饰器 >有瑕疵 import time def foo(): print('this is foo') # return foo def tim ...
分类:
编程语言 时间:
2020-02-13 12:31:26
阅读次数:
65
############### 装饰器的初成和开放封闭原则 ############## # 装饰器 # 装饰器非常重要,面试Python的公司必问, # 原则:开放封闭原则 # # 需求:计算程序执行的时间, import time def func(): start = time.time() ...
分类:
编程语言 时间:
2020-02-10 09:41:25
阅读次数:
75
1.函数装饰器的工作原理 函数装饰器的工作原理是怎样的呢?假设用 funA() 函数装饰器去装饰 funB() 函数,如下所示: 实际上,上面程序完全等价于下面的程序: 通过比对以上 2 段程序不难发现,使用函数装饰器 A() 去装饰另一个函数 B(),其底层执行了如下 2 步操作: 1. 将 B ...
分类:
编程语言 时间:
2020-01-11 15:03:18
阅读次数:
72
定义:本质是函数,(装饰其他函数)就是为其他函数添加功能 原则:1,不能修改被装饰的函数的源代码。 2,不能修改被装饰的函数的调用方式。 实现装饰器知识储备: 1.函数即变量 2.高阶函数 3.嵌套函数 高阶函数+嵌套函数=》装饰器 ...
分类:
其他好文 时间:
2020-01-04 12:17:14
阅读次数:
58
一、什么是装饰器 现在有一个需求,年终考核的时候需要测试某个函数的执行效率,我们怎么做呢?比如这个函数叫func。 对于绝大多数人来说,第一印象肯定是如下的实现方法: import time def func(): start = time.time() time.sleep(1) # 模拟程序延迟 ...
分类:
编程语言 时间:
2019-12-30 19:08:54
阅读次数:
88
转自:https://www.cnblogs.com/fcyworld/p/6239951.html 装饰器(decorator)是干嘛的? 对于受到封装的原函数来说,装饰器能够在那个函数执行前或者执行后分别运行一些代码,使得可以再装饰器里面访问并修改原函数的参数以及返回值,以实现约束定义、调试程序 ...
分类:
其他好文 时间:
2019-12-28 20:36:44
阅读次数:
70
闭包是什么 内层函数调用外层函数。 返回的函数对象,不仅仅是一个函数对象,在该函数外还包裹了一层作用域,这使得,该函数无论在何处调用,优先使用自己外层包裹的作用域 闭包+高阶函数=装饰器 为什么要用装饰器? 软件开发需要遵守以下原则: 开闭原则: 1.对已实现的功能模块不应该修改 2.对现有的功能的 ...
分类:
编程语言 时间:
2019-12-25 18:58:21
阅读次数:
90
from django.shortcuts import render, redirect from django import views # Create your views here. from functools import wraps # Django提供的工具,把函数装饰器转变成方法 ...
分类:
其他好文 时间:
2019-12-21 15:53:12
阅读次数:
79