Python学习笔记

发布时间 2023-06-24 00:15:24作者: 手可摘星辰。

1.装饰器

# 不带参数的装饰器

def welcome(fn):

    def wrapper(*args, **kwargs):
        print(f"welcome")
        res = fn(*args, **kwargs)

        return res
    
    return wrapper


@welcome
def my_fun(test_str):
    print(f"你好{test_str}")

my_fun('666')

# 相当于如下:
# my_fun = welcome(my_fun)
# my_fun('666')
# 带参数的装饰器

def welcome(name):

    def decorator(fn):

        def wrapper(*args, **kwargs):
            print(f"welcome:{name}")
            res = fn(*args, **kwargs)

            return res
        
        return wrapper
    
    return decorator


@welcome("wdc")
def my_fun(test_str):
    print(f"你好{test_str}")

my_fun('666')

# 相当于如下:
# welcome = welcome("wdc")
# my_fun = welcome(my_fun)
# my_fun('666')