'''
在Python中,闭包需要满足三要素:
1.定义嵌套函数,包括外层函数和内存函数
2.内层函数要引用外层函数中的变量
3.外层函数需要返回内层函数(注意:返回的是内层函数本身,而不是内层函数执行后的返回值)
'''
# 装饰器是闭包的一个应用
# import time
#
# def timing(func):
# def wrapper(*args,**kwargs):
# start = time.time()
# ret = func(*args,**kwargs)
# end = time.time()
# return ret,(end-start)
# return wrapper
#
# @timing
# def calculate():
# sum = 0
# for i in range(1000*1000):
# sum += i*i
# return sum
#
# ret,run_time = calculate()
# print(run_time)
# 函数调用
# import time
#
# def timing(func):
# def wrapper(*args,**kwargs):
# start = time.time()
# ret = func(*args,**kwargs)
# end = time.time()
# return ret,(end-start)
# return wrapper
#
# def calculate():
# sum = 0
# for i in range(1000*1000):
# sum += i*i
# return sum
#
# calculate = timing(calculate)
# ret,run_time = calculate()
# print(run_time)