python装备_Python——装饰器

在不改变调用方式,不改变原有函数内部代码的基础上,为多个函数在执行之前或之后做相同的操作。

前提:必须理解闭包,和闭包的格式以后,才能更好的理解装饰器。

#===============基本构造==============

def 外层函数(参数):

def 内层函数(*args,**kwargs):

retrun 参数(*args,**kwargs)

return 内层函数

#===============实例==================

def a(func):

def b(*args,**kwargs):

return func(*args,**kwargs)

return b

@a

def func():

pass

func()

@的作用:

1. 执行a函数,并将func函数当做参数传递到a中。

2. a的返回值重新赋值给下面的函数。

@a

相当于:

func = a(func)

func()

带参数的装饰器:

#==================基础版本===================

def wrapper(func):

def innre(*args,**kwargs):

value = func(*args,**kwargs)

return value

return innre

@wrapper

def a():

print(123)

a()

#==================带参数的装饰器===================

def wrapper(value):

print(value)

def inner(func):

print('678')

def function(*args,**kwargs):

f = func(*args,**kwargs)

return f

return function

return inner

@wrapper('456')

def a():

print('123')

就是在原有的装饰器上再加一层函数,目的是可以传该函数单独使用的参数而设计。

在没有执行a()的时候,带参数的装饰器也会运行到function函数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值