博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python装饰器
阅读量:6432 次
发布时间:2019-06-23

本文共 969 字,大约阅读时间需要 3 分钟。

本文参考了

装饰器的实质是把函数当做参数传递给另一个函数(装饰函数)并返回。 先看一个简单的例子:

from functools import wrapsdef logit(func):    @wraps(func)    def with_logging(*args, **kwargs):        print(func.__name__ + " was called")        return func(*args, **kwargs)    return with_logging@logitdef addition_func(x):   """Do some math."""   return x + xresult = addition_func(4)# Output: addition_func was called

再看下带参数的装饰器:

def logit(logfile='out.log'):    def logging_decorator(func):        @wraps(func)        def wrapped_function(*args, **kwargs):            log_string = func.__name__ + " was called"            print(log_string)            # 打开logfile,并写入内容            with open(logfile, 'a') as opened_file:                # 现在将日志打到指定的logfile                opened_file.write(log_string + '\n')            return func(*args, **kwargs)        return wrapped_function    return logging_decorator@logit(logfile='func2.log')def myfunc2():    passmyfunc2()

转载于:https://www.cnblogs.com/baisu/p/6156187.html

你可能感兴趣的文章
Python 数据清洗--处理Nan
查看>>
Actionscript 3.0 迁移指南
查看>>
leetcode 374. Guess Number Higher or Lower
查看>>
leetcode-682-Baseball Game
查看>>
Sharepoint 2010 Character problem in Category Titles in Blog Site for different languages
查看>>
秘猿科技开源 CITA-Monitor
查看>>
最便宜的云服务器
查看>>
aspxgridview 控件属性及功能
查看>>
最大联通子数组之和(dfs,记忆化搜索,状态压缩)
查看>>
(学习笔记4)数据可视化-matplotlib
查看>>
【设计模式系列】结构型模式之Composite模式
查看>>
PHP常量详解:define和const的区别
查看>>
ORA-04098 trigger 'DBBJ.DB_EV_ALTER_ST_METADATA' is invalid and failed re-validation
查看>>
Spring学习总结(四)——表达式语言 Spring Expression Language
查看>>
使用Notepad++的XML Tools插件格式化XML文件
查看>>
几种最常见的广域网
查看>>
java--Serializable理解与总结
查看>>
C语言工具:LCC-Win32+v3.0
查看>>
blog首页视图
查看>>
es6记录
查看>>