python 装饰器写法

Posted liy36

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 装饰器写法相关的知识,希望对你有一定的参考价值。

# 如果装饰器没有参数,但是被装饰的函数需要参数时,接收被装饰函数的形参需要写在装饰器函数的形参位置
# def dec1(func):
#     def wrapper(*args):
#         print()
#         func(*args)
#     return wrapper
#
#
# @dec1
# def foo(name):
#     print(name)
#
# foo(‘name‘)


# 如果装饰器没有参数,被装饰的函数也没有参数

# def dec1(func):
#     def wrapper():
#         func()
#     return wrapper
#
# @dec1
# def foo():
#     print("foo")
#
# foo()

# 如果装饰器有参数,但是被装饰的函数没有参数

# def dec(x):
#
#     def wrapper(func):
#         print(x)
#         return func
#     return wrapper
#
# @dec(‘dec‘)
# def foo():
#     print("foo")
# foo()


# 如果装饰器和被装饰的函数都有参数

def dec1(x):
    def outdec(func):
        print(x)
        def inner_dec(*args):
            func(*args)
        return inner_dec
    return outdec

@dec1(‘dec1‘)
def foo(name):
    print(name)
foo(‘foo‘)

以上是关于python 装饰器写法的主要内容,如果未能解决你的问题,请参考以下文章

Python装饰器的写法以及应用场景

python-- 装饰器迭代器生成器

python 装饰器

Python进阶装饰器(Decorator)

Python装饰器详解

Python 变量作用域 LEGB