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')