Mr.Li--python-闭包和装饰器

2017-06-06  本文已影响0人  界面大叔

闭包:

在函数内部在定义一个函数,并且这个函数用到了外面函数的变量,这个函数和用到的变量,称为闭包.

deftest_in(number_in):

print("in test_in函数, number_in is %d"%number_in)

returnnumber+number_in

#其实这里返回的就是闭包的结果

returntest_in

#给test函数赋值,这个20就是给参数number

ret = test(20)

#注意这里的100其实给参数number_in

print(ret(100))

#注意这里的200其实给参数number_in

print(ret(200))

运行结果:

intest_in函数, number_inis100

120

intest_in函数, number_inis200

220

闭包思考:

1.闭包似优化了变量,原来需要类对象完成的工作,闭包也可以完成

2.由于闭包引用了外部函数的局部变量,则外部函数的局部变量没有及时释放,消耗内存

装饰器:

装饰器的功能就是在运行原来功能基础上,加上一些其他功能,不修改原来的代码进行功能的扩展.

功能:

引用日志

函数执行时间统计

执行函数前预备处理

执行函数后清理功能

权限校验

缓存

上一篇 下一篇

猜你喜欢

热点阅读