当前位置: 首页 > news >正文

Python训练营打卡DAY27

DAY 27 函数专题2:装饰器

知识点回顾:

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

作业:

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

@logger
def multiply(a, b):return a * bmultiply(2, 3)  
# 输出:
# 开始执行函数 multiply,参数: (2, 3), {}
# 函数 multiply 执行完毕,返回值: 6
#normal
import timedef is_prime(num):if num < 2:return Falseelif num == 2:return Trueelse:for i in range(2, num):if num % i == 0:return Falsereturn Truedef prime_nums():t1 = time.time()for num in range(2, 10000):if is_prime(num):print(num)t2 = time.time()print(f"执行时间:{t2 - t1}秒")prime_nums()
#decorator
import time
def display_time(func):def wrapper():t1 = time.time()func()t2 = time.time()print(f"函数执行时间: {t2 - t1} 秒")return wrapper
# 继续定义判断质数的函数
def is_prime(num):"""判断一个数是否为素数"""if num < 2:return Falseelif num == 2:return Trueelse:for i in range(2, num):if num % i == 0:return Falsereturn True# 装饰器的标准写法
@display_time
def prime_nums(): # 这2行是一个整体"""找出2到10000之间的所有素数并打印"""for i in range(2, 10000):if is_prime(i):print(i)
prime_nums()#编写一个装饰器 logger,在函数执行前后打印日志信息(如函数名、参数、返回值)
# 输出:
# 开始执行函数 multiply,参数: (2, 3), {}
# 函数 multiply 执行完毕,返回值: 6def logger(func):def wrapper(*args, **kwargs):print(f'开始执行函数 {func.__name__},参数: {args}, {kwargs}')result = func(*args, **kwargs)print(f'函数 {func.__name__} 执行完毕,返回值: {result}')return resultreturn wrapper@logger
def multiply(num1, num2):return num1 * num2multiply(2,3)

@浙大疏锦行-CSDN博客

相关文章:

  • 金属加工液展|切削液展|2025上海金属加工液展览会
  • 嵌入式开发书籍推荐
  • 云服务器的运用自如
  • GraphPad Prism项目的管理
  • 动态规划(2):问题建模与状态设计
  • Review --- 框架
  • 实验-实现向量点积-RISC-V(计算机组成原理)
  • C语言编程中的时间处理
  • Cross-Site Scripting(XSS)
  • Go语言之路————并发
  • 一键清理功能,深度扫描本地存储数据
  • 深度学习驱动下的目标检测技术:原理、算法与应用创新(三)
  • memcached主主复制+keepalive
  • Python多线程实战:提升并发效率的秘诀
  • Linux常用命令42——tar压缩和解压缩文件
  • Python 之类型注解
  • Java项目使用Tomcat启动后JS文件中的中文乱码问题
  • 彻底删除Docker容器中的环境变量
  • 【Win32 API】 lstrcmpA()
  • 第J1周:ResNet-50算法实战与解析
  • 国宝文物子弹库帛书二、三卷从美启程,18日凌晨抵京
  • 蒲慕明院士:未来数十年不是AI取代人,而是会用AI的人取代不会用的
  • 马上评|科学红毯,让科学家成为“最亮的星”
  • 张家界一铁路致17人身亡,又有15岁女孩殒命,已开始加装护栏
  • 为什么越来越多景区,把C位留给了书店?
  • 中国科学院院士、我国航天液体火箭技术专家朱森元逝世