带参数的装饰器
Posted chenliang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了带参数的装饰器相关的知识,希望对你有一定的参考价值。
装饰器
1.不带参数的装饰器 函数写法
def decorator(func):
"""不带参数
:param func: 调用的方法
:return:
"""
def inner(*args, **kwargs):
print("not with arguments")
res = func(*args, **kwargs)
return res # 内层返回函数调用结果
return inner # 外层返回内层函数
<!--more-->
2.不带参数的装饰器 类写法
class Decorator:
def __init__(self, function):
self.function = function
def __call__(self, *args, **kwargs):
print("not with arguments")
res = self.function(*args, **kwargs)
return res
3.带参数的装饰器 函数写法
def decorator_with_arguments(arg):
"""带参数的装饰器
:param arg:
:return:
"""
def outer(func):
def inner(*args, **kwargs):
print("with arguments {arg}")
res = func(*args, **kwargs)
return res # 返回函数运行结果
return inner # 返回内层
return outer # 返回外层
4.带参数的装饰器 类写法
class Decorator:
def __init__(self, arg):
self.arg = arg
def __call__(self, function):
def inner(*args, **kwargs):
print(f"decorator with arguments {self.arg}")
res = function(*args, **kwargs)
return res
return inner
以上是关于带参数的装饰器的主要内容,如果未能解决你的问题,请参考以下文章