看代码写结果:

def wrapper(f):
def inner(*args,**kwargs):
print(111)
ret = f(*args,**kwargs)
print(222)
return ret
return inner def func():
print(333) print(444)
func()
print(555)

答案

444
333
555

编写装饰器,在每次执行被装饰函数之前打印一句’每次执行被装饰函数之前都得先经过这里,这里根据需求添加代码’。

答案

def warpper(f):
def inner(*args,**kwargs):
print('每次执行被装饰函数之前都得先经过这里,这里根据需求添加代码')
ret = f(*args,**kwargs)
return ret
return inner @warpper
def func():
print(111)
func()

为函数写一个装饰器,把函数的返回值 +100 然后再返回。

@wrapper
def func():
return 7 result = func()
print(result)

答案

def warpper(f):
def inner(*args,**kwargs):
ret = f(*args,**kwargs)+ 100
return ret
return inner @wrapper
def func():
return 7 result = func()
print(result)
# 106

请实现一个装饰器,通过一次调用使用函数重复执行5次。

答案

def wrapper(f):
def inner(*args,**kwargs):
for i in range(5):
f(*args,**kwargs)
return inner @wrapper
def func():
print(222)
func() # 输出结果
222
222
222
222
222

请实现一个装饰器,每次调用函数时,将函数名以及调用此函数的时间节点写入文件中。

可用代码:
import time
struct_time = time.localtime()
print(time.strftime("%Y-%m-%d %H:%M:%S",struct_time)) # 当前时间节点 def wrapper():
pass
def func1(f):
print(f.__name__)
func1(wrapper)
函数名通过: 函数名.__name__获取。

答案

import time
# struct_time = time.localtime()
# print(time.strftime("%Y-%m-%d %H:%M:%S",struct_time)) # 当前时间节点 def wrapper(f):
def inner(*args, **kwargs):
with open('a.txt',mode='r+',encoding='utf-8') as f1:
f1.read()
struct_time = time.localtime()
ret = f(*args, **kwargs) f1.write(f"函数名:{f.__name__},当前时间节点:{time.strftime('%Y-%m-%d %H:%M:%S', struct_time)}\n")
return ret
return inner
@wrapper
def func1(f):
print(f.__name__)
func1(wrapper) # 输出文件的结果
函数名:func1,当前时间节点:2019-06-24 19:08:01
函数名:func1,当前时间节点:2019-06-24 19:08:08

最新文章

  1. HP服务器 hp 360g5 centos7安装问题
  2. C之按位运算符
  3. IOS - 多态
  4. hello
  5. workerman 的属性
  6. SnapKit代码约束
  7. Inno Setup 在安装程序开始前和卸载程序开始前,检查并关闭运行的进程
  8. 使用ffmpeg快速生成视频截图
  9. IT新人论成长
  10. Hive自定义UDAF详解
  11. EL表达式 JSTL中的常用EL函数 动态数据的国际化
  12. 《SDN核心技术剖析和实战指南》3.3读书笔记
  13. Ubuntu等Linux系统清除DNS缓存的方法
  14. Echarts后台封装option对象
  15. UVALive 4490 Help Bubu
  16. 代码中输入数字自动筛选出最大值,使用array,for loop and if (21.9.2017)
  17. css3中的布局相关样式
  18. mac系统下安装Composer和laravel
  19. 图片和span水平垂直居中
  20. 在Visual Studio中使用.lib和.dll的环境搭建

热门文章

  1. Python 异常处理中的 esle
  2. 一文看懂js中的clientX,clientY,pageX,pageY,screenX,screenY
  3. CSS 学习笔记——CSS Selector
  4. 【CSS3】自定义设置可编辑元素闪烁光标的颜色
  5. Flask css 无法实时更新
  6. 微信小程序结构目录、配置介绍、视图层(数据绑定,运算,列表渲染,条件渲染)
  7. 通过itunes把文件放入app的document目录
  8. 通过mockjs来制作假数据
  9. 用反射机制和pandas,实现excel数据的读取以及参数化${arg}的赋值
  10. SQL中rownumber的用法