【python基础知识】Day 27 函数专题2:装饰器

知识点:

  1. 装饰器的思想:进一步复用
  2. 函数的装饰器写法
  3. 注意内部函数的返回值

装饰器教程

作业:

编写一个装饰器 logger,在函数执行前后打印日志信息(如函数名、参数、返回值)

python 复制代码
def logger(func):
    def wrapper(*args, **kwargs):  # args 是元组,kwargs 是字典
        print(f"开始执行函数 {func.__name__},参数: {args}, {kwargs}")
        result = func(*args, **kwargs)
        print(f"函数 {func.__name__} 执行完毕,返回值: {result}")
        return result
    return wrapper
 
@logger
def multiply(a, b):
    return a * b 
 
multiply(2, 3)  # 调用 multiply 函数,观察日志输出

func.name :按照pep8的约定,在一个变量前后都加上两个下划线代表着这是一个Python内置的变量,是自动创建的。作用返回 func 的名称更详细的可以问AI

相关推荐
爱学堂IT分享1 分钟前
图灵Java互联网架构师六期
java·开发语言
传奇开心果编程11 分钟前
【Rust入门知识点学与练】第3课:String 与 &str 的区别
开发语言·学习·rust
2601_9622994913 分钟前
使用 Python 将 CSV 转为 PDF(含表格样式美化)
python·pdf·csv·spire.xls·表格样式
秋名RG22 分钟前
Java 核心特性一览
java·开发语言
2601_9620779826 分钟前
利用Python,四步掌握机器学习
python·机器学习·数据挖掘·数据分析·编程
axinawang42 分钟前
requests--爬取网页内容
python
平头哥AI1 小时前
Day 01 | go run 跑通第一个 Go 程序,go build 留下一个能拷走的 exe
开发语言·后端·golang
盼小辉丶1 小时前
PyTorch强化学习实战——融合人类示范数据的高效强化学习
人工智能·pytorch·python·深度学习·强化学习
葡萄城技术团队1 小时前
工业数据可视化:使用活字格 AIcoding + Three.js 构建轻量化三维设备监控大屏
开发语言·javascript·信息可视化
qiaosaifei2 小时前
JAVA老项目中有大量的类名_编译时报找不到符号错误
java·开发语言