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的轻便web框架Bottle
Apr 08 Python
centos6.4下python3.6.1安装教程
Jul 21 Python
python实现将一个数组逆序输出的方法
Jun 25 Python
Django框架设置cookies与获取cookies操作详解
May 27 Python
使用Python实现跳一跳自动跳跃功能
Jul 10 Python
python3 assert 断言的使用详解 (区别于python2)
Nov 27 Python
python已协程方式处理任务实现过程
Dec 27 Python
Pyecharts绘制全球流向图的示例代码
Jan 08 Python
django使用F方法更新一个对象多个对象字段的实现
Mar 28 Python
基于python SMTP实现自动发送邮件教程解析
Jun 02 Python
pandas 像SQL一样使用WHERE IN查询条件说明
Jun 05 Python
pytorch 实现多个Dataloader同时训练
May 29 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
Zend Studio 实用快捷键一览表(精心整理)
2013/08/10 PHP
php判断ip黑名单程序代码实例
2014/02/24 PHP
PHP实现动态执行代码的方法
2016/03/25 PHP
Laravel关联模型中过滤结果为空的结果集(has和with区别)
2018/10/18 PHP
JavaScript 脚本将当地时间转换成其它时区
2009/03/19 Javascript
jQuery中实现动画效果的基本操作介绍
2013/04/16 Javascript
Javascript实现滚动图片新闻的实例代码
2013/11/27 Javascript
jQuery中val()方法用法实例
2014/12/25 Javascript
JavaScript中Number.MAX_VALUE属性的使用方法
2015/06/04 Javascript
javascript框架设计之种子模块
2015/06/23 Javascript
jQuery Easyui学习之datagrid 动态添加、移除editor
2016/01/27 Javascript
Easyui Treegrid改变默认图标的方法
2016/04/29 Javascript
Vue 递归多级菜单的实例代码
2019/05/05 Javascript
javascript系统时间设置操作示例
2019/06/17 Javascript
JS实现点击发送验证码 xx秒后重新发送功能
2019/07/30 Javascript
Swiper实现导航栏滚动效果
2020/10/16 Javascript
Python读写Json涉及到中文的处理方法
2016/09/12 Python
Python实现树的先序、中序、后序排序算法示例
2017/06/23 Python
python中将字典形式的数据循环插入Excel
2018/01/16 Python
CSS3 实现图形下落动画效果
2020/11/13 HTML / CSS
html5 Canvas画图教程(1)—画图的基本常识
2013/01/09 HTML / CSS
北美个性化礼品商店:Things Remembered
2018/06/12 全球购物
EJB timer的种类
2014/10/28 面试题
体育专业学生自我评价范文
2014/01/17 职场文书
户外婚礼策划方案
2014/02/08 职场文书
化学教学随笔感言
2014/02/19 职场文书
行政主管职责范本
2014/03/07 职场文书
小学秋季运动会报道稿
2014/09/30 职场文书
党的群众路线教育实践活动整改落实情况自查报告
2014/10/28 职场文书
悬空寺导游词
2015/02/05 职场文书
2015年车间安全管理工作总结
2015/05/13 职场文书
小学生禁毒教育心得体会
2016/01/15 职场文书
2016优秀教师先进个人事迹材料
2016/02/25 职场文书
vue实现锚点定位功能
2021/06/29 Vue.js
Python基础 括号()[]{}的详解
2021/11/07 Python
关于vue-router-link选择样式设置
2022/04/30 Vue.js