python学习小记录一(装饰器)

本文介绍Python装饰器的基本概念及其在日志记录中的应用。通过一个简单的示例代码展示了如何使用装饰器来增强函数功能,特别是在记录函数调用的时间和参数等方面。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天学习python发现了一个很屌的知识点叫什么装饰器。这玩意很屌啊,很像Java里面的注解框架功能,但是感觉又比注解好理解一些,我感觉最适合用来打日志了。咩哈哈哈。来来来,看代码。

# -*- coding: utf-8 -*-
# code by xiaonan
import datetime
import time
import functools

def log(func):
    @functools.wraps(func)
    def wrapper(*args,**kwargs):
        print("method call start")
        func(*args,**kwargs)
        stop_time = datetime.datetime.now()
        print("method call stop")
        return None
    return wrapper

@log
def now():
    print("This is method")

if __name__=="__main__":
    now()

在log函数里面,你可以打很多的日志,包括参数什么的,执行时间啥的都打出来。然后你只需要在想要打日志的函数前面华丽的写上@log,在执行这个函数的时候,log也就可以输出了。这玩意真的很神奇啊。当打上@log标签的函数执行的时候,会先去执行wrapper函数,感觉像是hock或者反射之类的功能,这里引用一下廖雪峰老师的原

由于log()是一个decorator,返回一个函数,所以,原来的now()函数仍然存在,只是现在同名的now变量指向了新的函数,于是调用now()将执行新函数,即在log()函数中返回的wrapper()函数。wrapper()函数的参数定义是(*args, **kw),因此,wrapper()函数可以接受任意参数的调用。在wrapper()函数内,首先打印日志,再紧接着调用原始函数。

这里就学会了这个不明觉厉的功能。以后会自己封装喜欢的log风格,哪怕打印一个火车都行,只要在喜欢的地方!!哈哈哈,开森


内容概要:本文探讨了在MATLAB/SimuLink环境中进行三相STATCOM(静态同步补偿器)无功补偿的技术方法及其仿真过程。首先介绍了STATCOM作为无功功率补偿装置的工作原理,即通过调节交流电压的幅值和相位来实现对无功功率的有效管理。接着详细描述了在MATLAB/SimuLink平台下构建三相STATCOM仿真模型的具体步骤,包括创建新模型、添加电源和负载、搭建主电路、加入控制模块以及完成整个电路的连接。然后阐述了如何通过对STATCOM输出电压和电流的精确调控达到无功补偿的目的,并展示了具体的仿真结果分析方法,如读取仿真数据、提取关键参数、绘制无功功率变化曲线等。最后指出,这种技术可以显著提升电力系统的稳定性与电能质量,展望了STATCOM在未来的发展潜力。 适合人群:电气工程专业学生、从事电力系统相关工作的技术人员、希望深入了解无功补偿技术的研究人员。 使用场景及目标:适用于想要掌握MATLAB/SimuLink软件操作技能的人群,特别是那些专注于电力电子领域的从业者;旨在帮助他们学会建立复杂的电力系统仿真模型,以便更好地理解STATCOM的工作机制,进而优化实际项目中的无功补偿方案。 其他说明:文中提供的实例代码可以帮助读者直观地了解如何从零开始构建个完整的三相STATCOM仿真环境,并通过图形化的方式展示无功补偿的效果,便于进步的学习与研究。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值