python 装饰器

装饰器

  对方法进行装饰,加强版的foo,最后取值取的是装饰后,装饰器里返回的值

   先执行装饰器里的函数, 在调用inner的时候,调用func()才会触发原函数的操作,实际最后返回的是装饰器里内函数最后返回的值

 

 

参数化装饰器

register = set()

def dec(active=True):

    def outer(func):

        print("running %s (active=%s)" % (func, active))

        if active:

            register.add(func)

        else:

            register.discard(func)

        return func

    return outer

 

@dec(active=False)

def test1():

    return "runing test1"

 

@dec()

def test2():

    print("runing test2")

 

def test3():

    print("running test3")

 

def main():

    print("main runing")

    test1()

    test2()

    test3()

    print(register)

 

常用的内置装饰器

  1. 静态方法:装饰器@staticmethod
  2. 类方法  装饰器@classmethod
  3. Property  方法当做一种特殊的属性,使用方式为p.number,对应的方法还是要有self

 

posted @ 2020-11-20 09:52  7dao  阅读(60)  评论(0编辑  收藏  举报