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实现的二维码生成小软件
Jul 11 Python
Python3实现带附件的定时发送邮件功能
Dec 22 Python
详谈在flask中使用jsonify和json.dumps的区别
Mar 26 Python
详解python如何在django中为用户模型添加自定义权限
Oct 15 Python
python字符串反转的四种方法详解
Dec 02 Python
如何基于Python实现自动扫雷
Jan 06 Python
keras tensorflow 实现在python下多进程运行
Feb 06 Python
Python3实现打印任意宽度的菱形代码
Apr 12 Python
如何解决flask修改静态资源后缓存文件不能及时更改问题
Aug 02 Python
python opencv肤色检测的实现示例
Dec 21 Python
Python日志打印里logging.getLogger源码分析详解
Jan 17 Python
python爬取新闻门户网站的示例
Apr 25 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
使用Apache的rewrite技术
2006/06/22 PHP
PHP 中的类
2006/10/09 PHP
PHP 常用数组内部函数(Array Functions)介绍
2013/06/05 PHP
Win7 64位系统下PHP连接Oracle数据库
2014/08/20 PHP
php使用session二维数组实例
2014/11/06 PHP
PHP程序中的文件锁、互斥锁、读写锁使用技巧解析
2016/03/21 PHP
Yii2 ActiveRecord多表关联及多表关联搜索的实现
2016/06/30 PHP
php分页查询的简单实现代码
2017/03/14 PHP
Laravel Intervention/image图片处理扩展包的安装、使用与可能遇到的坑详解
2017/11/14 PHP
js验证表单大全
2006/11/25 Javascript
javascript之学会吝啬 精简代码
2010/04/25 Javascript
基于jQuery制作迷你背词汇工具
2010/07/27 Javascript
页面调用单个swf文件,嵌套出多个方法。
2011/11/21 Javascript
推荐一个封装好的getElementsByClassName方法
2014/12/02 Javascript
Javascript BOM学习小结(六)
2015/11/26 Javascript
JavaScript遍历求解数独问题的主要思路小结
2016/06/12 Javascript
利用Javascript实现BMI计算器
2016/08/16 Javascript
谈谈JavaScript的New关键字
2016/08/26 Javascript
AngularJs $parse、$eval和$observe、$watch详解
2016/09/21 Javascript
less简单入门(CSS 预处理语言)
2017/03/08 Javascript
angular 用拦截器统一处理http请求和响应的方法
2017/06/08 Javascript
浅谈在node.js进入文件目录的问题
2018/05/13 Javascript
vue-router的使用方法及含参数的配置方法
2018/11/13 Javascript
JS实现点击下拉列表文本框中出现对应的网址,点击跳转按钮实现跳转
2019/11/25 Javascript
Python随机生成均匀分布在单位圆内的点代码示例
2017/11/13 Python
教你用 Python 实现微信跳一跳(Mac+iOS版)
2018/01/04 Python
Django中的cookie和session
2019/08/27 Python
python开发入门——set的使用
2020/09/03 Python
python获取本周、上周、本月、上月及本季的时间代码实例
2020/09/08 Python
Python虚拟环境virtualenv创建及使用过程图解
2020/12/08 Python
苏宁红孩子母婴商城:redbaby
2017/02/12 全球购物
会计自荐书
2013/12/02 职场文书
后勤主管岗位职责
2014/03/01 职场文书
爱国卫生月活动总结范文
2014/04/25 职场文书
好人好事新闻稿
2015/07/17 职场文书
巧用 -webkit-box-reflect 倒影实现各类动效(小结)
2021/04/22 HTML / CSS