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

yipeiwu_com5年前Python基础

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实现蒙特卡洛算法小实验过程详解

Python实现蒙特卡洛算法小实验过程详解

蒙特卡洛算法思想 蒙特卡洛(Monte Carlo)法是一类随机算法的统称,提出者是大名鼎鼎的数学家冯·诺伊曼,他在20世纪40年代中期用驰名世界的赌城—摩纳哥的蒙特卡洛来命名这种方法。...

在Gnumeric下使用Python脚本操作表格的教程

在Gnumeric下使用Python脚本操作表格的教程

关于Gnumeric Gnumeric是linux平台下的一款功能强大且易于使用的电子表格软件,与其他常用电子表格软件如Excel等在风格上非常一致。Gnumeric当前的稳定版是1.2...

python在html中插入简单的代码并加上时间戳的方法

python在html中插入简单的代码并加上时间戳的方法

建议用pycharm,使用比较方便,并且可以直接编辑html文件 import time locatime = time.strftime("%Y-%m-%d" ) report =...

python3对接mysql数据库实例详解

python3对接mysql数据库实例详解

Python3 MySQL数据库连接,假设MySQL数据库已经安装好了,并创建好了数据库(后面抽点时间将数据库的安装总结下)。  PyMySQL是Python3中用于连接MyS...

python实现矩阵和array数组之间的转换

前言: array数组要转换成矩阵(matrix)数据类型才能进行一系列的线性运算。matrix类型也有时候要转换成array数组。 代码: 1.array转matrix:用mat()...