当前位置:   article > 正文

python 装饰器学习 校验权限_python装饰器 self.func = func权限

python装饰器 self.func = func权限

装饰器。。。理解还是有点模糊。摸透了再补充

class Person():

    def __init__(self, name, quan):
        self.name = name
        self.quan = quan
        # 设置一个类表示个人, 有姓名 权限 两个属性
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
设定 读权限 1 写权限 2 执行权限4
三层 最外层设置该操作所需权限码 中间层传入要装饰的函数 最内层传入函数所需参数 在内层进行校验
def jiaoYan(num):
    def setQuan(func):
        def inner(person):
            if num & person.quan == num:    # 当校验通过 可以执行该操作
                func(person)
            else:
                print(person.name, "无权限")
        return inner
    return setQuan

@jiaoYan(1)
def read(person):
    print(person.name, "读代码")

@jiaoYan(2)
def write(person):
    print(person.name, "写代码")

@jiaoYan(4)
def run(person):
    print(person.name, "执行代码")


p1 = Person("张三", 1)    # 只有读权限
p2 = Person("李四", 3)    # 读写权限
p3 = Person("王五", 6)    # 写与执行权限
read(p1)
write(p2)
read(p3)
run(p3)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

执行结果为

张三 读代码
李四 写代码
王五 无权限
王五 执行代码
  • 1
  • 2
  • 3
  • 4
声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号