【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

相关推荐
胎粉仔16 分钟前
Swift 初阶 —— Sendable 协议 & data races
开发语言·ios·swift·sendable·并发域·data races
洗紫1 小时前
Python中的条件语句怎么使用?
python
青衫码上行1 小时前
【Java Web学习 | 第九篇】JavaScript(3) 数组+函数
java·开发语言·前端·javascript·学习
jf加菲猫1 小时前
第1章 认识Qt
开发语言·c++·qt·ui
南汐汐月1 小时前
重生归来,我要成功 Python 高手--day35 深度学习 Pytorch
pytorch·python·深度学习
铅笔小新z1 小时前
深入理解C语言内存管理:从栈、堆到内存泄露与悬空指针
c语言·开发语言
java1234_小锋1 小时前
[免费]基于Python的深度学习豆瓣电影数据可视化+情感分析推荐系统(Flask+Vue+LSTM+scrapy)【论文+源码+SQL脚本】
python·信息可视化·flask·电影数据可视化
m0_495562781 小时前
Swift-snapKit使用
开发语言·elasticsearch·swift
q***18842 小时前
搭建Golang gRPC环境:protoc、protoc-gen-go 和 protoc-gen-go-grpc 工具安装教程
开发语言·后端·golang
多多*2 小时前
一个有 IP 的服务端监听了某个端口,那么他的 TCP 最大链接数是多少
java·开发语言·网络·网络协议·tcp/ip·缓存·mybatis