python 闭包与装饰器
2021-06-20 02:03
标签:on() def ima 编程 import http gbk 计时 图片 1、闭包--返回子函数名 作用:使用子函数之外的父函数的变量 闭包就是你调用了一个函数a,这个函数a反悔了一个子函数名b,这个返回的函数b就叫做闭包 代码举例 统计做一件事情所需要的时间 做一批事情都想统计时间,如何做 装饰器=闭包+函数式编程 装饰器就是把函数(类)包装一下,为函数(类)添加一些附加的功能 装饰器就是一个函数,参数为函数名(类),返回包装后的函数名 装饰就是参数为函数名字的闭包 装饰器 = 闭包 + 函数式编程 python 闭包与装饰器 标签:on() def ima 编程 import http gbk 计时 图片 原文地址:https://www.cnblogs.com/hellojackyleon/p/9689692.htmldef a():
test = ‘aa‘
def b():
print(test)
return 1
return b
c = a()
print(c)
print(c())
import time
def deco(func):
def _deco(*args,**kwargs):
before = time.time()
ret = func(*args,**kwargs)
print(‘cost time : %s‘ %(time.time() - before))
return ret
return _deco
@deco @装饰器写法
def do_something():
time.sleep(3)
print(‘done‘)
do_something()
#coding:utf-8
def deco(func):
def _deco():
print(‘屌丝: 我有一辆法拉利跑车‘)
func()
print(‘屌丝: 我北京有一套别墅‘)
return _deco
@deco
def confression():
print(‘屌丝: 女神 I love you ,will you merry me?‘)
def accept():
print(‘女神: 讨厌,人家愿意了‘)
confression()
accept()
#coding:gbk
import time
def calc_time(func):
def calc(*args,**kwargs):
begin_time = time.time()
ret = func(*args,**kwargs)
print(‘huafei time: % second‘ %(time.time() - begin_time))
return calc
@calc_time
def eat_bf():
time.sleep(5)
# t = calc_time(eat_bf)
# t()
eat_bf()
def watch_movie(movie_name):
print(‘movie name: %s‘ % movie_name)
time.sleep(4)
w = calc_time(watch_movie)
w(‘gumuliying‘)