import timecurrent_user={'user':None}def auth(engine = 'file'): def deco(func): #func=最初始的index和最初始的home def wrapper(*args,**kwargs): if current_user[ ...
分类:
编程语言 时间:
2018-06-12 16:14:14
阅读次数:
128
from inspect import signature def f(a,b,c=1):pass sig = signature(f) sig.parameters 实现一个对被装饰的函数的参数类型检查的装饰器 from inspect import signature def typeasser... ...
分类:
编程语言 时间:
2018-06-08 12:15:30
阅读次数:
210
装饰器作为python的中的一个功能可以说是非常重要的,也是学习python中的一个门坎,可能很多人会觉得在学习装饰器的时候很容易会搞迷糊,最在看python核心编程时和python之阐时感觉有点明白了,在此抛砖引玉。装饰器的作用最大的特点的是,在不修改原代码的情况下,给原有的代码附加功能,所以要写装饰器要遵守二个规则:不能修改被装饰的函数不能修改函数的调用方式想要搞明白装饰器需要的知识点1.函数
分类:
编程语言 时间:
2018-06-08 11:56:27
阅读次数:
180
装饰器内获取函数有用信息方法 .__doc__用于得到函数注释信息 .__name_用于得到函数名 在函数引用装饰器的时候,函数名会变为装饰器内部执行该函数的名字,所有在直接执行函数名加.__doc__或__name_的时候得到的是,装饰器内部函数的注释信息和名字。因为函数名被替换了。 所以想得到实 ...
分类:
编程语言 时间:
2018-06-05 21:50:48
阅读次数:
879
装饰器上下五千年和前世今生,这里我们始终要问,装饰器为何产生?装饰器产生解决了什么问题?什么样的需求推动了装饰器的产生?思考问题的时候,始终要问,为什么要这样,而不是那样或者其他样。这里我不先说,也不直接把装饰器的最终样子摆出来,而是说说装饰器发展过程,从这些过程中知道,不是技术推动技术的发展,而是 ...
分类:
编程语言 时间:
2018-06-04 21:37:48
阅读次数:
264
1、原函数有多个参数的情况,计算函数运行时间 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 import time def performance(f): def fn(*args,**kw): t1 = time.time() r=f(*args,**kw) t2 ...
分类:
编程语言 时间:
2018-06-03 17:35:36
阅读次数:
226
#!/usr/bin/env python# -*- coding: utf-8 -*-# @Time : 2018/6/3 0003 11:47# @Author : Anthony.Waa# @Site : # @File : test.py# @Software: PyCharm# 示例1:# ...
分类:
编程语言 时间:
2018-06-03 14:37:43
阅读次数:
190
说明: 有时为了给某个对象而不是给整个类添加一个功能,使用继承机制是添加功能的一个有效途径,但是不够灵活,用户不能控制对组件加边框的方式和时机,并且会导致子类膨胀。一种较为灵活的方式就是将组件嵌入另一个对象中,这个嵌入的对象叫做装饰。 装饰模式:动态地给一个对象增加一些额外的职责。就扩展功能而言,装 ...
分类:
编程语言 时间:
2018-06-03 01:05:29
阅读次数:
175
装饰器:本质上就是一个函数(装饰其它函数):为其他函数添加附属功能。 原则: 不能修改被装饰函数的源代码 不能修改被装饰函数的调用方式 实现装饰器(decorator)的知识储备: 函数即变量: 把函数名当作实参传给另外一个函数(实现了不修改被装饰函数源代码) 返回之中包含函数名(不修改函数调用方式 ...
分类:
编程语言 时间:
2018-05-31 00:32:23
阅读次数:
190
#!/usr/bin/env python# -*- coding: utf-8 -*-# @Time : 2018/5/27 0027 14:07# @Author : Anthony.Waa# @Site : # @File : User_Login_Register_Shopping 1.0. ...
分类:
其他好文 时间:
2018-05-30 21:20:52
阅读次数:
157