闭包:
在函数内部再定义一个函数,并且这个函数用到了外边函数的变量,且外部函数的返回值是内部函数的引用。那么将这个 函数以及用到的一些变量称之为闭包。
def line(k, b):
def create_y(x):
print(k*x+b)
return create_y
装饰器:
装饰器本质上是一个Python函数,它可以在让其他函数在不需要做任何代码的变动的前提下增加额外的功能。 装饰器的返 回值也是一个函数的对象,它经常用于有切面需求的场景。 比如:插入日志、性能测试、事务处理、缓存、权限的校验等场景 有了装饰器就可以抽离出大量的与函数功能本身无关的雷同代码并发并继续使用。
import time
def timeit(func):
def wrapper():
start = time.clock()
func()
end =time.clock()
print 'used:', end - start
return wrapper
@timeit
def foo()
print 'in foo()'foo()