python通用装饰器_python 通用装饰器,带有参数的装饰器,

# 使用装饰器对有返回值的函数进行装饰

# def func(functionName):

# print('---func-1----')

# def func_in():

# print("----func_in---1-")

# x = functionName() #保存返回来的hahah

# print("----func_in---2-")

# return x

# print('---func-2----')

# return func_in

# @func

# def test():

# print("-----test-----")

# return "haha"

# ret = test()

# print("test return value is %s"%ret)

# ---func-1----

# ---func-2----

# ----func_in---1-

# -----test-----

# ----func_in---2-

# test return value is haha

# 使用通用装饰器对函数进行装饰

# def func(functionName):

# def func_in(*args,**kwatgs):

# print("记录日志")

# x = functionName(*args,**kwatgs)

# return x

# return func_in

# @func

# def test():

# print("-----test-----")

# return "haha"

# ret = test()

# print("test return value is %s"%ret)

# # -----test-----

# # test return value is haha

# @func

# def test2():

# print("----test2----")

# a = test2()

# print(a)

# # ----test2----

# # None

# @func

# def test3(a):

# print("-----test3----a=%d"%a)

# test3(10)

# -----test3----a=10

# 记录日志

# -----test-----

# test return value is haha

# 记录日志

# ----test2----

# None

# 记录日志

# -----test3----a=10

# 带有参数的装饰器、、

def func_arg(arg):

print(arg)

def func(functionName):

print('----func----')

def func_in():

print("--记录日志---")

print(arg)

if arg=='呵呵':

functionName()

functionName()

else:

functionName()

return func_in

return func

# 1.先执行func_arg('呵呵')函数,这个函数return的结果是func这个函数的引用

# 2.@func

# 3.使用@func对test进行装饰

# 带有参数的装饰器,能够起到在运行时,有不同的功能

@func_arg('呵呵')

def test():

print("-----test-----")

ret = test()

# 呵呵

# ----func----

# --记录日志---

# -----test-----

@func_arg("haha")

def test2():

print("--test2--")

test2()

# haha

# ----func----

# --记录日志---

# haha

# --test2--

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值