Python怎么实现装饰器
发表于:2025-11-11 作者:千家信息网编辑
千家信息网最后更新 2025年11月11日,小编给大家分享一下Python怎么实现装饰器,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!普通装饰器:直接上代码吧。def
千家信息网最后更新 2025年11月11日Python怎么实现装饰器
小编给大家分享一下Python怎么实现装饰器,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
普通装饰器:
直接上代码吧。
def demo(func_test): def wrapper(): print('定义的第一个装饰器') func_test() print('装饰器结束') return wrapper #这里注意不要加括号@demodef func_test(): print('小白小白!!!!')直接使用自定义装饰器强化的原方法。
带有参数的装饰器:
def demo(func_test): def wrapper(name): print('定义的第一个装饰器') func_test(name) print('哦,你就是%s啊'%name) print('装饰器结束') return wrapper@demodef func_test(name): print('大家好我叫%s'%name)是不是有点感觉了啊。
接下来就是不带自定义参数的装饰器
def demo(func_test): def wrapper(*name,**kwargs): print('定义的第一个装饰器') func_test(*name,**kwargs) print('哦,你就是%s啊'%name[0]) print('你今年%s岁啊'%name[1]) print('装饰器结束') return wrapper@demodef func_test(name,age): print('大家好我叫%s'%name) print('今年{}'.format(age))是不是很简答啊。哈哈哈哈
多个装饰一起使用。
def deco01(func): def wrapper(*args,**kwargs): print('第一层的装饰器') func(*args,**kwargs) print('第一层装饰器结束') return wrapperdef deco02(func): def wrapper(*args,**kwargs): print('这是第二层装饰器') print('第二层装饰器结束') func(*args, **kwargs) return wrapper@deco02@deco01def func(a,b,c,name): print('hello ,here is a func') print("result is %d" %(a+b+c)) print('name:{}'.format(name))看看执行顺序可以看出装饰器是从上往下执行的。
类装饰器:
在使用装饰器时我们总不能在一个文件里写的都是装饰器和各个方法吧,总是要分开的。这里就要是讲一个类装饰器。
这里呢,我大概了写了一个读取文件装饰器的例子。
class Mydecorator(): def __init__(self,func): # 定义为私有属性 self.func = func # 实现__call__方法,让对象变成可以调用的对象,可调用的对象可以想函数那样使用 def __call__(self, *args, **kwargs): print('测试类装饰器') self.func(*args) catalogue = args[0] suffix = catalogue.split('.')[2] try: if suffix == 'json': with open(*args,'r',encoding='utf-8') as file_object: contents = json.load(file_object) print(contents) else: with open(*args,'r',encoding='utf-8') as file_object: contents = file_object.read() print(contents) except Exception as a: print('读取文件出错拉:{}'.format(a))@Mydecoratordef name(name): print('请输入对应文件路径:%s'%name)以上是"Python怎么实现装饰器"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
文件
对象
就是
方法
篇文章
二层
内容
参数
小白
普通
接下来
不怎么
代码
例子
函数
多个
大部分
属性
感觉
括号
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
服务器返回的状态码 302
重庆网络安全会议
仁和有阿里巴巴云数据库吗
苹果内侧软件开发
智能媒体资源管理服务器
河北常见软件开发报价
完成数据库
微信小程序用哪个平台的服务器好
steam体验服服务器维护
佛山翻译软件开发
access数据库与前台连接
城市交通数据库
神经网络技术与应用代码
学校进销存数据库设计
宁波招聘软件开发主管国企
软件开发规模估算成本
四川网络技术学院哪个好
澳大利亚最新网络安全新闻
苏拉玛网络安全任务npc
甘肃报考软件开发证书
去 s化 国产化 网络安全
淮安软件开发价钱
昂楷数据库综合防护系统
网络安全手抄报图片加文字
简易http文件服务器
瑞韬软件开发有限公司
软件开发的8
女巫来了服务器找不到
拉卡拉怎么连接不上服务器
论文评语软件开发