# -*- coding: UTF-8 -*- ###============ 参数返回 ============### # # def echo(msg): # print(f"徐大虫{msg}!") # def outer(arg): # def inner(): # print("*" * 30) # 新增功能 # arg('hello') # print("*" * 30) # 上下都可新增功能 # return inner # n = outer(echo) # python 封装为 @ 。如下: # n() ###============ 单个参数传递 ============### # def echo(msg): # print(f"徐大虫{msg}!") # def outer(arg): # def inner(s): # print("*" * 30) # 新增功能 # arg(s) # print("*" * 30) # 上下都可新增功能 # return inner # echo = outer(echo) # python 封装为 @ 。如下: # echo('active') ###============ 多个参数传递 ============### def echo(msg): print(f"徐大虫{msg}!") def outer(arg): def inner(*args, **kwargs): print("*" * 30) # 新增功能 arg(*args, **kwargs) print("*" * 30) # 上下都可新增功能 return inner echo = outer(echo) # python 封装为 @ 。如下: echo('hi!') @outer def show(msg): print(f"{msg} OK") show('xclouds') ###============ 写装饰器的固定格式 ============### def auth(func): def wrapper(*args, **kwargs): r = func(*args, **kwargs) return r return wrapper @auth # foo2 = auth(foo2) def foo2(msg): up_msg= msg.upper() return up_msg r = foo2('hello') print(r)