码迷,mamicode.com
首页 > 其他好文 > 详细

装饰器

时间:2019-11-02 14:10:51      阅读:84      评论:0      收藏:0      [点我收藏+]

标签:end   返回   开放   UNC   return   cti   sleep   out   参数   

#_author:Xing
#date:2019/11/2
# 装饰器(函数)
# 1.作用域:L_E_G_B
# 2.高阶函数
# (1)函数名可以作为参数输入
# (2)函数名可以作为返回值
# 3.闭包
# 关于闭包:闭包=内部函数+定义函数时的环境
def outer():
x=10
def inner():#条件1:内部函数
print(x)#条件2:x为外部环境的一个变量
return inner#结论:内部函数inner就是一个闭包
outer()()#10
#inner局部变量,全局不能调用
#关于闭包:
#闭包=内部函数+定义函数时的环境
print(‘-------------‘)
def outer(x):
def inner():#条件1:内部函数
print(x)#条件2:x为外部环境的一个变量
return inner#结论:内部函数inner就是一个闭包
f=outer(8)
f()#8
print(‘-------------‘)
# import time
# start=time.time()
# time.sleep(1)
# end=time.time()
# print(end - start)#1.016906499862671
print(‘-------------‘)
#遵守开放封闭原则

# def showtime(f):
# start = time.time()
# f()
# end = time.time()
# print(‘spend %s‘ % (end - start)) # spend 3.0004241466522217
# showtime(fun)
#改进
def fun():
print(‘function...‘)
time.sleep(3)
import time
def showtime(f):
def inner():
start = time.time()
f()
end = time.time()
print(‘spend %s‘ % (end - start)) # spend 3.0004241466522217
return inner
fun=showtime(fun)
fun()
#执行结果:
# function...
# spend 3.0003504753112793





装饰器

标签:end   返回   开放   UNC   return   cti   sleep   out   参数   

原文地址:https://www.cnblogs.com/startl/p/11781278.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!