Python怎么实现装饰器
发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,小编给大家分享一下Python怎么实现装饰器,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!普通装饰器:直接上代码吧。def
千家信息网最后更新 2025年01月20日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安全错误
数据库的锁怎样保障安全
excel找一个重复数据库
工商联数据库系统的城市
四川三维土地资产管理软件开发
服务器唱的画
服务器部署图 工具
靠谱的crm管理软件开发
SQL修改数据库文件
数据库模式是什么
自动顶帖软件开发教程
成都软件开发公司如何提高竞争力
亚马逊服务器芯片是哪个国家的
软件开发模式及流程图
广州钟鼎木林网络技术
郭红数据库chp3
服务器配置管理系统
开启数据库开发
海康流媒体转发服务器
微软 数据库一体机
软件开发专业要读研吗
邮箱怎么手动配置服务器
清远卫星软件开发批发价格
上海网络安全工程介绍
服务器如何设置默认当前登录账户
2017网络安全市场规模
安西软件开发设计在线咨询
数据库 单表
上海浦东新区网络技术公司
网络安全知识与技术教学设计
如何得知数据库的表建在哪
iis登录不上数据库