python之道14
2024-09-07 10:25:59
看代码写结果:
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
最新文章
- HP服务器 hp 360g5 centos7安装问题
- C之按位运算符
- IOS - 多态
- hello
- workerman 的属性
- SnapKit代码约束
- Inno Setup 在安装程序开始前和卸载程序开始前,检查并关闭运行的进程
- 使用ffmpeg快速生成视频截图
- IT新人论成长
- Hive自定义UDAF详解
- EL表达式 JSTL中的常用EL函数 动态数据的国际化
- 《SDN核心技术剖析和实战指南》3.3读书笔记
- Ubuntu等Linux系统清除DNS缓存的方法
- Echarts后台封装option对象
- UVALive 4490 Help Bubu
- 代码中输入数字自动筛选出最大值,使用array,for loop and if (21.9.2017)
- css3中的布局相关样式
- mac系统下安装Composer和laravel
- 图片和span水平垂直居中
- 在Visual Studio中使用.lib和.dll的环境搭建
热门文章
- Python 异常处理中的 esle
- 一文看懂js中的clientX,clientY,pageX,pageY,screenX,screenY
- CSS 学习笔记——CSS Selector
- 【CSS3】自定义设置可编辑元素闪烁光标的颜色
- Flask css 无法实时更新
- 微信小程序结构目录、配置介绍、视图层(数据绑定,运算,列表渲染,条件渲染)
- 通过itunes把文件放入app的document目录
- 通过mockjs来制作假数据
- 用反射机制和pandas,实现excel数据的读取以及参数化${arg}的赋值
- SQL中rownumber的用法