Python打卡day27!!!

DAY 27 函数专题2:装饰器

ps:第一期day27对应5月16日

知识点回顾:

  1. 装饰器的思想:进一步复用
  2. 函数的装饰器写法
  3. 注意内部函数的返回值
import time
import sys
import io
# 设置标准输出为 UTF-8 编码
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
 
# def logger(func):
#     def wrapper(*args,**kwargs):
#         print(f"开始执行函数{func.__name__},参数:{args},{kwargs}")
#         result=func(*args,**kwargs)
#         print(f"函数{func.__name__}执行完毕,返回值:{result}")
#         return result
#     return wrapper
 
# 带参数的装饰器
def logger(msg=None):
    def logger1(func):
        def wrapper(*args,**kwargs):
            print(f"这是一个{msg}函数")
            print(f"开始执行函数{func.__name__},参数:{args},{kwargs}")
            t1=time.time()
            result=func(*args,**kwargs)    # 内部函数有返回值
            print(f"函数{func.__name__}执行完毕,返回值:{result},执行时间:{time.time()-t1}秒")
            return result
        return wrapper
    return logger1
 
 
@logger(msg="乘法")
def multiply(a,b):
    return a*b
 
multiply(2,3)

 @浙大疏锦行

你可能感兴趣的:(python打卡,python,开发语言)