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)
常用的内置装饰器
- 静态方法:装饰器@staticmethod
- 类方法: 装饰器@classmethod
- Property 方法当做一种特殊的属性,使用方式为p.number,对应的方法还是要有self