Python带有参数的装饰器实例代码详解-创新互联

demo.py(装饰器,带参数的装饰器):

成都创新互联是一家专注于网站建设、成都网站制作与策划设计,龙口网站建设哪家好?成都创新互联做网站,专注于网站建设十年,网设计领域的专业建站公司;建站业务涵盖:龙口等地区。龙口做网站价格咨询:028-86922220
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带有参数的装饰器实例代码详解-创新互联
分享路径:http://bzwzjz.com/article/dhjhig.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 成都网站设计 成都网站制作 古蔺网站建设 手机网站制作 成都网站建设 网站建设推广 成都网站制作 成都网站设计 定制网站设计 手机网站建设 网站设计公司 网站建设方案 成都网站建设公司 成都网站设计 成都网站建设 广安网站设计 成都网站建设 教育网站设计方案 成都网站建设流程 手机网站制作 成都网站建设公司 网站建设