怎么应用python装饰器
发表于:2025-01-29 作者:千家信息网编辑
千家信息网最后更新 2025年01月29日,本篇内容主要讲解"怎么应用python装饰器",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么应用python装饰器"吧!什么是装饰器从字面意思上来看,装
千家信息网最后更新 2025年01月29日怎么应用python装饰器
本篇内容主要讲解"怎么应用python装饰器",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么应用python装饰器"吧!
什么是装饰器
从字面意思上来看,装饰器是用来装饰其他东西的工具。在python中装饰器分为函数装饰器和类装饰器。
简而言之,函数装饰器是用来装饰函数的装饰器,其主要目的是增加目标函数的功能,类装饰器也就是装饰类的装饰器,增加类的功能。
函数装饰器
装饰器本质是嵌套函数
下面是一个简单的装饰器
# fun1为装饰器名称,function指的是被装饰的函数def fun1(function): def fun2(): print("开始了!") function() # 执行被装饰的函数或者 或者 return function() return fun2
外面的fun1()
需要传入一个参数,这个参数是用来传入要被装饰的函数,里面的fun2()
需要执行function
这个参数。
这是将函数当成参数传入另一个函数。
使用方法:
在需要装饰的函数上添加@装饰器名称
@fun1def fun3(): print("aaa")fun3()
可以等价成这样:
def fun3(): print("aaa")fun = fun1(fun3)fun()
输出结果是一致的
执行结果:
开始了!
aaa
如果传入的函数需要参数可以这样写:
def fun1(function): def fun2(a): print("开始了!") function(a) return fun2@fun1def fun3(a): print(a)fun3("aaa")
输出结果:
开始了!
aaa
如果不清楚传入的函数需要多少个参数,可以这样写:
def fun1(function): def fun2(*args, **kwargs): print("开始了!") function(*args, **kwargs) return fun2@fun1def fun3(a,b): print(a,b)@fun1 def fun4(a,b,c): print(a,b,c) fun3("aaa","bbb")fun4("ccc","ddd","eee")
运行结果:
开始了!
aaa bbb
开始了!
ccc ddd eee
如果函数装饰器需要添加参数,可以这样写:
def fun(msg): def fun1(function): def fun2(*args, **kwargs): print("开始了!{}".format(msg)) function(*args, **kwargs) return fun2 return fun1@fun(msg="小朋友")def fun3(a,b): print(a,b)fun3("aaa","bbb")
运行结果:
开始了!小朋友
aaa bbb
类装饰器
类装饰器的用法基本和函数装饰器一样,只不过是用类写的装饰器
class fun1(object): def __init__(self, func): self.func = func def __call__(self, *args, **kwargs): print(("开始了!") self.func(*args, **kwargs)@fun1def fun2(a,b): print(a,b)fun2("aaa","bbb")
类装饰用到了类的__call__
方法
运行结果:
开始了!
aaa bbb
还可以这样写:
class fun(object): def __init__(self, msg): self.msg = msg def __call__(self, func): def fun1(*args, **kwargs): print("开始了!{0}".format(self.msg)) func(*args, **kwargs) return fun1@fun(msg="小朋友")def fun2(a, b): print(a, b)fun2("aaa,","bbb")
运行结果:
开始了!小朋友
aaa, bbb
到此,相信大家对"怎么应用python装饰器"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
函数
参数
结果
小朋友
运行
应用
方法
内容
功能
名称
学习
输出
实用
更深
清楚
一致
东西
中装
也就是
使用方法
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
商用软件开发证书
选购服务器 知乎
网络安全靠大家班会主题班会
江苏网络技术服务价目表
电子软件开发相关公司
江西服务器防火墙供应
网络安全报绘画
宁夏润雨互联网科技公司
数据库系统中数据完整性分为
网络技术提取图片
计算机网络技术适合女生学
抢阿里云服务器
杭州攻略网络技术有限公司
软件开发的前期规划
事务 连接 数据库
dnf云服务器刷金
武汉悦学邦网络技术有限公司
数据库中怎么设置数据来源
r星服务器初始化失败
app 如何上传服务器
自动化和网络安全哪个好
广东前端软件开发哪家可靠
互联网科技企业捐赠名单
网络安全你我他教育活动
宁夏润雨互联网科技公司
网络安全考研好还是就业
网络安全生产的自查报告
争当网络安全小卫士活动教学设计
义乌app软件开发是做什么的
网络安全科普公益证书有用吗