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实现dict版图遍历示例
Feb 19 Python
Python库urllib与urllib2主要区别分析
Jul 13 Python
Python实现数据库编程方法详解
Jun 09 Python
Python获取邮件地址的方法
Jul 10 Python
Python利用openpyxl库遍历Sheet的实例
May 03 Python
用Python写一个模拟qq聊天小程序的代码实例
Mar 06 Python
python 梯度法求解函数极值的实例
Jul 10 Python
Python pandas RFM模型应用实例详解
Nov 20 Python
python列表切片和嵌套列表取值操作详解
Feb 27 Python
python3 自动打印出最新版本执行的mysql2redis实例
Apr 09 Python
Python list列表删除元素的4种方法
Nov 01 Python
Python中re模块的元字符使用小结
Apr 07 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获取qq用户昵称和在线状态(实例分析)
2013/10/27 PHP
PHP通过串口实现发送短信
2015/07/08 PHP
将PHP程序中返回的JSON格式数据用gzip压缩输出的方法
2016/03/03 PHP
PHP获取网页所有连接的方法(附demo源码下载)
2016/03/30 PHP
php curl常用的5个经典例子
2017/01/20 PHP
fireworks菜单生成器mm_menu.js在 IE 7.0 显示问题的解决方法
2009/10/20 Javascript
jQuery html() in Firefox (uses .innerHTML) ignores DOM changes
2010/03/05 Javascript
HTML页面滚动时获取离页面顶部的距离2种实现方法
2013/09/05 Javascript
jquery $.trim()方法使用介绍
2014/05/21 Javascript
原生js和jquery实现图片轮播淡入淡出效果
2015/04/23 Javascript
jQuery实现的多屏图像图层切换效果实例
2015/05/07 Javascript
javascript中for/in循环及使用技巧
2015/09/01 Javascript
javascript制作照片墙及制作过程中出现的问题
2016/04/04 Javascript
微信小程序 本地存储及登录页面处理实例详解
2017/01/11 Javascript
Webpack中css-loader和less-loader的使用教程
2017/04/27 Javascript
vue 2.0封装model组件的方法
2017/08/03 Javascript
JS实现点击下拉菜单把选择的内容同步到input输入框内的实例
2018/01/23 Javascript
NodeJS 实现多语言的示例代码
2018/09/11 NodeJs
理解JavaScript中的对象
2020/08/25 Javascript
微信小游戏中three.js离屏画布的示例代码
2020/10/12 Javascript
python 实现文件的递归拷贝实现代码
2012/08/02 Python
在Python中使用全局日志时需要注意的问题
2015/05/06 Python
给你选择Python语言实现机器学习算法的三大理由
2017/11/15 Python
Python数据集切分实例
2018/12/08 Python
python 对字典按照value进行排序的方法
2019/05/09 Python
解决Python安装时报缺少DLL问题【两种解决方法】
2019/07/15 Python
pygame实现俄罗斯方块游戏(对战篇1)
2019/10/29 Python
Python调用scp向服务器上传文件示例
2019/12/22 Python
django rest framework 自定义返回方式
2020/07/12 Python
matplotlib grid()设置网格线外观的实现
2021/02/22 Python
Canvas波浪花环的示例代码
2020/08/21 HTML / CSS
2015年学校教育教学工作总结
2015/04/22 职场文书
关于Numpy之repeat、tile的用法总结
2021/06/02 Python
常用的MongoDB查询语句的示例代码
2021/07/25 MongoDB
bootstrapv4轮播图去除两侧阴影及线框的方法
2022/02/15 HTML / CSS
小程序实现侧滑删除功能
2022/06/25 Javascript