当前位置: 首页 > news >正文

装饰器加强

'''加强练习:1.请实现一个装饰器,通过一次调用势函数重复执行五次思路:原函数--->不改变原函数代码的情况下--->输出5次
'''class loop_5:def __init__(self, func):self.func = funcdef __call__(self, *args, **kwargs):#原函数执行for i in range(5):self.func(*args, **kwargs)
@loop_5
def sum1(a, b):print(a + b)
sum1(1,2)'''2.请实现一个装饰器,每次调用函数时,将函数名字以及调用此函数的时间点写入文件中
'''import time
current_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
# 方法一
def log_name_time(func):def wrapper(*args, **kwargs):#增强:将名字和时间点写入文件name = func.__name__with open("log.txt", "a",encoding="utf-8") as f:f.write(f"调用方法名:{name},调用时间为:{current_time}\n")# 调用了函数func(*args, **kwargs)return wrapper@log_name_time
def zhangsan():print("test2-------")
zhangsan()# 方法二
def log_name_time2(time):def decorator(func):def wrapper(*args, **kwargs):#增强:将名字和时间点写入文件name = func.__name__with open("log.txt", "a",encoding="utf-8") as f:f.write(f"调用方法名:{name},调用时间为:{time}\n")# 调用了函数func(*args, **kwargs)return wrapperreturn decorator@log_name_time2(current_time)
def lisi():print("test3-------")
lisi()'''3.完成文件写入功能,任意写入一个字符,编写装饰器,实现写入文件增加当前系统时间
'''
class log_time():def __init__(self, time):self.time = timedef __call__(self, func):def wrapper(*args, **kwargs):func(*args, **kwargs)with open("log2.txt", "a+",encoding="utf-8") as f:f.write(f",time:{self.time}\n")return wrapper@log_time(current_time)
def write_str(str):with open("log2.txt", "a+",encoding="utf-8") as f:f.write(str)write_str("尹书婷")
http://www.dtcms.com/a/516440.html

相关文章:

  • 17Z一起做网站广州站南阳商都网站做网站
  • MySQL多实例部署实战指南
  • 微网站建设招聘做招聘网站代理商需要多少钱
  • Android 网络变动监听
  • Deep Metric Learning(深度度量学习)
  • 消息队列RabbitMQ、Kafka、ActiveMQ 、Redis、 ZeroMQ、Apache Pulsar对比和如何使用
  • 建网站专用网站标准物质网站建设模板
  • (四)Flutter插件之IOS插件开发
  • 湘潭网站建设 x磐石网络广州网站建设培训学校
  • 织梦做的网站老是被黑国外做美食视频网站有哪些
  • 自动化测试相关使用
  • 做移门图的 网站有哪些做招聘网站需要做什么公司
  • TDengine 数字函数 RADIANS 用户手册
  • 做导航网站赚钱企业网站搜索优化外
  • 网站网页设计公司海南省建设执业中心网站
  • 如何解压一个MacOs PKG 安装包修改内容后重新打包
  • Linux 与 Windows:谁更适合 CLI 模式 AI 编程工具?
  • 深度学习(15)-PyTorch torch.nn 参考手册
  • 人工智能Pytorch开发环境的搭建
  • 【研究生随笔】Pytorch中的多层感知机
  • 广州知名网站建设性价比高三乡网站建设公司
  • 网站的建设流程图跨境电子商务网站建设
  • 佛山小学网站建设上海上市公司全部名单
  • linux怎么管理文件空间
  • Isaac-GR00T valueerror: no valid stream found in input file accept image
  • 如何在Linux安装 dotnet-sdk-2.2.207-linux-x64.tar.gz(解压+配置+验证)
  • js图片展示网站wordpress 豆瓣评分
  • 深度学习-175-知识图谱技术之langchain与neo4j的深入剖析
  • JAVA算法练习题day49
  • P1028 [NOIP 2001 普及组] 数的计算