1、写一个装饰器,实现缓存功能,允许过期,但没有换出,没有清除1)cache的必要元素:key-->value这里的key是函数的参数,value是函数的返回值2)超时时间超时时间如何存储步骤1:In[28]:fromfunctoolsimportwraps
In[29]:defcache(fn):
...:cache_dict={}
...:@wraps
.....
分类:
其他好文 时间:
2017-06-19 22:02:35
阅读次数:
101
闭包函数: 1、定义在函数内部的函数 2、包含对外部作用域而非全局作用域的引用特点: 1、自带作用域 2、延迟计算(取到内存地址,加括号执行) def 外部函数(func): def 内部函数(*args,**kwargs): pass return 内部函数 f=外部函数(func) print( ...
分类:
编程语言 时间:
2017-06-19 20:52:44
阅读次数:
188
一、递归调用 1.一个函数自己调用自己就是递归调用,最多一个函数递归调用自己999次,超过就会出错2.递归必须有一个明确的结束条件3.每次进入更深一层递归时,问题规模相比上次递归都应有所减少4.递归效率不高,少用递归 二、高阶函数 1.如果一个函数的入参是一个函数名的话,那么这个函数就是高阶函数2. ...
分类:
编程语言 时间:
2017-06-17 18:40:39
阅读次数:
339
一、高阶函数python中函数是一等对象(firstclass);函数也是对象,并且它可以像普通对象一样复制、作为参数、作为返回值。返回函数或者参数是函数的函数就是高阶函数,也被称为函数式编程In[23]:defcounter(base):
...:definc(x=1):
...:nonlocalbase
...:base+=x
...:return..
分类:
其他好文 时间:
2017-06-17 10:12:42
阅读次数:
110
装饰器(难):函数里面可以再嵌套一个函数高阶函数说白了就是函数嵌套+高阶函数装饰器的作用就是在不改变原有函数的调用方式,入参的情况下,给函数添加新功能偷偷摸摸的给函数加上新功能,但是不改变原来的函数 1)函数嵌套函数:def a(): print('1') def b(): print('2') d ...
分类:
其他好文 时间:
2017-06-17 10:09:43
阅读次数:
224
递归调用、高阶函数、函数作用域、python内置函数、装饰器、模块、random、json串和积累 一、递归调用 递归调用就是一个函数自己调用自己,自我调用最多调用999次。 特性:1.必须有一个明确的结束条件; 2.每次进入更深一层递归时,问题规模相比上次递归都应该有所减少; 3.递归效率不高,建 ...
分类:
编程语言 时间:
2017-06-16 23:11:32
阅读次数:
292
一、装饰器装饰器,这个器就是函数的意思,连起来,就是装饰函数,装饰器本身也是一个函数,它的作用是用来给其他函数添加新功能,比如说,我以前写了很多代码,系统已经上线了,但是性能比较不好,现在想把程序里面每个函数都加一个功能,用来统计每个函数的运行时间是多少,找出来运行比较慢的函数,来优化代码,就需要添 ...
分类:
编程语言 时间:
2017-06-15 17:51:16
阅读次数:
132
一、什么是装饰器 装饰器,它本身是一个函数。 装饰器的作用在于,在不改变现有函数的调用方式的前提下,给其新增一些功能;这些功能一般都是公用的。 它经常用于有切面需求的场景,比如:插入日志、性能测试、事务处理、缓存、权限校验等场景。(此句引用:https://zhuanlan.zhihu.com/p/ ...
分类:
编程语言 时间:
2017-06-14 22:26:33
阅读次数:
156
一:编写函数,(函数执行的时间是随机的) import randomdef t(): time.sleep(random.randrange(1,3)) print('hello')二:编写装饰器,为函数加上统计时间的功能 三:编写装饰器,为函数加上认证的功能 四:编写装饰器,为多个函数加上认证的功 ...
分类:
编程语言 时间:
2017-06-14 20:08:39
阅读次数:
264
装饰器前奏1 定义:本质是函数,用来装饰其它函数,就是为其他函数来添加附加功能 原则:1、不能修改被修饰函数的源代码以及调用方式 装饰器前奏2 实现装饰器只是储备: 1、函数即”变量“ 2、高阶函数 3、嵌套函数 高阶函数+嵌套函数=》装饰器 装饰器前奏3 装饰器前奏4 ...
分类:
编程语言 时间:
2017-06-13 10:12:53
阅读次数:
176