Python 带有参数的装饰器实例代码详解


Posted in Python onDecember 06, 2018

demo.py(装饰器,带参数的装饰器):

def set_level(level_num):
  def set_func(func):
    def call_func(*args, **kwargs):
      if level_num == 1:
        print("----权限级别1,验证----")
      elif level_num == 2:
        print("----权限级别2,验证----")
      return func()
    return call_func
  return set_func
# 带有参数的装饰器装饰过程分为2步:
# 1. 调用set_level函数,把1当做实参
# 2. set_level返回一个装饰器的引用,即set_func
# 3. 用返回的set_func对test1函数进行装饰
 @set_level(1)
# 调用set_level方法(可以传参,不同的参数装饰不同的功能),用set_level方法的返回值当做装饰器进行装饰。
def test1():
  print("-----test1---")
  return "ok"
@set_level(2)
def test2():
  print("-----test2---")
  return "ok"
test1()
test2()

总结

以上所述是小编给大家介绍的Python 带有参数的装饰器实例代码详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
Python中多线程thread与threading的实现方法
Aug 18 Python
Python实现根据指定端口探测服务器/模块部署的方法
Aug 25 Python
Python中使用MELIAE分析程序内存占用实例
Feb 18 Python
python 列表删除所有指定元素的方法
Apr 19 Python
Python3实现的简单验证码识别功能示例
May 02 Python
python并发和异步编程实例
Nov 15 Python
解决python3中cv2读取中文路径的问题
Dec 05 Python
python将txt文档每行内容循环插入数据库的方法
Dec 28 Python
python matplotlib库绘制散点图例题解析
Aug 10 Python
基于python实现雪花算法过程详解
Nov 16 Python
Django Serializer HiddenField隐藏字段实例
Mar 31 Python
python opencv人脸识别考勤系统的完整源码
Apr 26 Python
DES加密解密算法之python实现版(图文并茂)
Dec 06 #Python
python获取时间及时间格式转换问题实例代码详解
Dec 06 #Python
python中ImageTk.PhotoImage()不显示图片却不报错问题解决
Dec 06 #Python
Python3非对称加密算法RSA实例详解
Dec 06 #Python
Python3对称加密算法AES、DES3实例详解
Dec 06 #Python
Python http接口自动化测试框架实现方法示例
Dec 06 #Python
python的常用模块之collections模块详解
Dec 06 #Python
You might like
PHP中使用smarty生成静态文件的例子
2014/04/24 PHP
destoon实现VIP排名一直在前面排序的方法
2014/08/21 PHP
php网页病毒清除类
2014/12/08 PHP
PHP实现的用户注册表单验证功能简单示例
2019/02/25 PHP
PHP iconv()函数字符编码转换的问题讲解
2019/03/22 PHP
PHP7 安装event扩展的实现方法
2019/10/08 PHP
js修改table中Td的值(定义td的单击事件)
2013/01/10 Javascript
document.createElement()用法及注意事项(ff下不兼容)
2013/03/13 Javascript
javascript实现框架高度随内容改变的方法
2015/07/23 Javascript
JavaScript setTimeout使用闭包功能实现定时打印数值
2015/12/18 Javascript
分享几种比较简单实用的JavaScript tabel切换
2015/12/31 Javascript
再次谈论React.js实现原生js拖拽效果引起的一系列问题
2016/04/03 Javascript
javascript基础知识
2016/06/07 Javascript
js验证真实姓名与身份证号,手机号的简单实例
2016/07/18 Javascript
Js查找字符串中出现次数最多的字符及个数实例解析
2016/09/05 Javascript
jquery写出PC端轮播图实例
2018/01/26 jQuery
vue自动化表单实例分析
2018/05/06 Javascript
AngularJS ui-router刷新子页面路由的方法
2018/07/23 Javascript
Vue项目中如何使用Axios封装http请求详解
2019/10/23 Javascript
Vue使用轮询定时发送请求代码
2020/08/10 Javascript
[01:00:14]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs TNC 第三场
2018/04/10 DOTA
Python操作MySQL数据库的三种方法总结
2018/01/30 Python
对Python 网络设备巡检脚本的实例讲解
2018/04/22 Python
Empty test suite.(PyCharm程序运行错误的解决方法)
2018/11/30 Python
python实现点击按钮修改数据的方法
2019/07/17 Python
Pytorch之parameters的使用
2019/12/31 Python
英国在线发型和美容产品商店:Beauty Cutie
2019/04/27 全球购物
意大利香水和化妆品购物网站:Parfimo.it
2019/10/06 全球购物
法制宣传月活动方案
2014/05/11 职场文书
文明班级建设方案
2014/05/15 职场文书
师范大学生求职信
2014/06/13 职场文书
乡镇党的群众路线教育实践活动总结报告
2014/10/30 职场文书
python实现简单区块链结构
2021/04/25 Python
python 下划线的多种应用场景总结
2021/05/12 Python
日本动漫十大公认神作:第五现已全网禁播,《死亡笔记》在榜
2022/03/18 日漫
JavaScript圣杯布局与双飞翼布局实现案例详解
2022/08/05 Javascript