简单的装饰器使用

装饰器用于对现有函数进行功能补充,在不修改原函数的代码上,可以对原函数的参数、执行前后进行功能追加。

def checker(func):
    def inner(*args, **kwargs):
        print("执行前检查")
        print(args, kwargs)
        if args[0] <10:
            print('值小于10,不通过')
            raise ValueError
        return func(*args, **kwargs)
    return inner
@checker
def add_num(a, b=11):
    """"普通的相加函数,在装饰器中追加验证:a必须大于10"""
    print(a+b)
add_num(12,b=14)
add_num(1, b=14)

输出结果如下

执行前检查
(12,) {
    
    'b': 14}
26
执行前检查
(1,) {
    
    'b': 14}
值小于10,不通过
  File "/Users/tomjerry/PycharmProjects/pythonProject/main.py", line 22, in inner
    raise ValueError
ValueError

在装饰器中的 args 和 kwargs 分别表示被装饰函数中的两种参数,arg表示的是原函数的无默认值形参,kwargs表示的是函数中带有默认值的形参

猜你喜欢

转载自blog.csdn.net/qq_20728575/article/details/126344117
今日推荐