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基于二分查找实现求整数平方根的方法
May 12 Python
KMP算法精解及其Python版的代码示例
Jun 01 Python
python+VTK环境搭建及第一个简单程序代码
Dec 13 Python
python文件操作之批量修改文件后缀名的方法
Aug 10 Python
python取数作为临时极大值(极小值)的方法
Oct 15 Python
Python + OpenCV 实现LBP特征提取的示例代码
Jul 11 Python
python列表每个元素同增同减和列表元素去空格的实例
Jul 20 Python
Python学习笔记之列表和成员运算符及列表相关方法详解
Aug 22 Python
python 串口读取+存储+输出处理实例
Dec 26 Python
Python 使用 prettytable 库打印表格美化输出功能
Dec 26 Python
Python 剪绳子的多种思路实现(动态规划和贪心)
Feb 24 Python
django queryset相加和筛选教程
May 18 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常用数学函数汇总
2014/11/21 PHP
ThinkPHP框架实现的邮箱激活功能示例
2018/06/15 PHP
php tpl模板引擎定义与使用示例
2019/08/09 PHP
Javascript注入技巧
2007/06/22 Javascript
javascript学习笔记(七) js函数介绍
2012/06/19 Javascript
jquery实现公告翻滚效果
2015/02/27 Javascript
微信小程序 触控事件详细介绍
2016/10/17 Javascript
WEB开发之注册页面验证码倒计时代码的实现
2016/12/15 Javascript
JS基于递归算法实现1,2,3,4,5,6,7,8,9倒序放入数组中的方法
2017/01/03 Javascript
深入理解javascript的getTime()方法
2017/02/16 Javascript
js-FCC算法-No repeats please字符串的全排列(详解)
2017/05/02 Javascript
Angular中ng-options下拉数据默认值的设定方法
2017/06/21 Javascript
jq源码解析之绑在$,jQuery上面的方法(实例讲解)
2017/10/13 jQuery
Angular17之Angular自定义指令详解
2018/01/21 Javascript
如何实现小程序tab栏下划线动画效果
2019/05/18 Javascript
vue element-ui之怎么封装一个自己的组件的详解
2019/05/20 Javascript
NodeJS 文件夹拷贝以及删除功能
2019/09/03 NodeJs
vscode 调试 node.js的方法步骤
2020/09/15 Javascript
在Python中利用Pandas库处理大数据的简单介绍
2015/04/07 Python
Python函数中的函数(闭包)用法实例
2016/03/15 Python
python Django批量导入不重复数据
2016/03/25 Python
python如何获取服务器硬件信息
2017/05/11 Python
Django migrations 默认目录修改的方法教程
2018/09/28 Python
pip安装提示Twisted错误问题(Python3.6.4安装Twisted错误)
2020/05/09 Python
django为Form生成的label标签添加class方式
2020/05/20 Python
python实现PDF中表格转化为Excel的方法
2020/06/16 Python
pandas to_excel 添加颜色操作
2020/07/14 Python
python利用文件时间批量重命名照片和视频
2021/02/09 Python
工厂仓管员岗位职责
2014/01/01 职场文书
一位农村小子的自荐信
2014/04/07 职场文书
食品安全处置方案
2014/06/14 职场文书
青年文明号口号
2014/06/17 职场文书
大学生自我评价200字(4篇)
2014/09/17 职场文书
Python 实现定积分与二重定积分的操作
2021/05/26 Python
解决Vue+SpringBoot+Shiro跨域问题
2021/06/09 Vue.js
Python获取江苏疫情实时数据及爬虫分析
2021/08/02 Python