Python装饰器的使用

非 Y 不嫁゛ 提交于 2019-12-03 09:17:00

简单使用

def decorator(new_func):
    def inner():
        print("+++")
        new_func()
    return inner

@decorator
def show():
    print("BBB")

show()

#结果如下:
+++
BBB

装饰器带有参数的函数

def decorator(func):
    def inner(num1,num2):
        print("计算结果如下:")
        func(num1,num2)
    return inner

@decorator
def sum(num1,num2):
    result=num1+num2
    print(result)

sum(2,3)

#结果如下:
计算结果如下:
5

通用的装饰器

def decorator(func):
    def inner(*args, **kwargs):
        print("计算结果如下", end=" ")
        result=func(*args, **kwargs)
        return result
    return inner

@decorator
def sum(num1, num2, num3):
    result = num1 + num2 + num3
    return result

result = sum(1, 2,5)
print(result)

#结果如下:
计算结果如下 8

带有参数的装饰器

def get_decorator(char):
    def decorator(func):
        def inner():
            print(char)
            func()
        return inner
    return decorator

@get_decorator("aaaa")
def show():
    print("1111")

show()

#结果如下:
aaaa
1111
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!