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

类装饰器

'''类装饰器 --- 装饰器的实现方法为      魔术方法  __call__()装饰器传递参数无参类装饰器有参类装饰器
'''# 1.类装饰器传递参数
class log:#通过构造方法传递原函数def __init__(self,func):self.func = func#实现装饰器的魔术方法def __call__(self,*args,**kwargs):print("log-------before")self.func(*args,**kwargs)print("log--------after")@log
def add_user():print("add user")add_user()# 2.无参类的装饰器
class no_args_log:#通过构造方法传递原函数def __init__(self,func):self.func = func#实现装饰器的魔术方法def __call__(self,*args,**kwargs):print("log-------before")self.func(*args,**kwargs)print("log--------after")@no_args_log
def add_user():print("无参类装饰器")add_user()# 3.有参类的装饰器  !!!不再使用构造方法传递原函数,选哟传递装饰器的参数
class args_log:#通过构造方法传递原函数def __init__(self,operator,time):self.operator = operatorself.time = time#实现装饰器的魔术方法 --- 调用原函数时,不需要使用selfdef __call__(self,func):def wrapper(*args,**kwargs):print(f"log --- before : {operator} - {time}")func(*args,**kwargs)print(f"log --- after : {operator} - {time}")return wrapperimport time
operator = "王兆玮"
time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())@args_log(operator,time)
def add_user(username):print(f"add user: {username}")
add_user("尹书婷")
http://www.dtcms.com/a/516517.html

相关文章:

  • 什么网站可以直接做word如何在外管局网站做付汇延期
  • Dify从入门到精通 第22天 利用分支与判断构建智能路由客服机器人
  • 网站底备案号链接代码商丘建设厅网站首页
  • 【C++】手搓AVL树
  • 【完整源码+数据集+部署教程】【天线&其他】月球表面状况检测系统源码&数据集全套:改进yolo11-unireplknet
  • Flutter---弹窗
  • 从零开始学习RabbitMQ
  • 台州市住房和城乡建设局网站做美容美发学校网站公司
  • [答疑]考虑复用,尺度应该怎样把握
  • 注册网站借钱平台犯不犯法个人网站logo需要备案吗
  • 最新电大网站开发维护竞价托管推广代运营
  • 字符串统计
  • Docker与Tomcat:一键部署Java Web应用的完美组合
  • 【同步/异步 日志系统】 --- 前置技术
  • 图论基础和表示
  • 网站建设为了什么怎么看网站谁做的
  • [小白]spring boot接入emqx
  • Spring Boot 实现GZIP压缩优化
  • Spring Boot使用Redis实现消息队列
  • 互联网大厂Java面试实战:以Spring Boot与微服务为核心的技术场景剖析
  • 做网站页面的软件毕业设计网站成品
  • 《一个浏览器多人用?Docker+Neko+cpolar实现跨网共享》
  • design设计网站网站优化方法页面
  • C++基础:(十七)模版进阶:深入探索非类型参数、特化、分离编译与实战技巧
  • 《Git:从入门到精通(五)—— Git:Gitee远程仓库创建与克隆指南》
  • UML学习文档(一)
  • 淘宝放单网站开发网站wordpress错误
  • Latex中的错误汇总
  • huggingface transformers调试问题--加载本地路径模型时pdb断点消失
  • KMP算法详解 -- 串的模式匹配