首页 > 编程语言 >How to use Python Decorators_1

How to use Python Decorators_1

时间:2023-12-05 17:33:17浏览次数:33  
标签:use log Python was How func logfile Decorators def

加入了写入Log文件的Decorators:

from functools import wraps


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()
def myfunc1():
    pass


myfunc1()


# Output: myfunc1 was called
# 现在一个叫做 out.log 的文件出现了,里面的内容就是上面的字符串

@logit(logfile='func2.log')
def myfunc2():
    pass


myfunc2()
# Output: myfunc2 was called
# 现在一个叫做 func2.log 的文件出现了,里面的内容就是上面的字符串

注意下Return顺序:

  1. Function
  2. Function_Operation
  3. Others

标签:use,log,Python,was,How,func,logfile,Decorators,def
From: https://www.cnblogs.com/MoKinLi/p/17877761.html

相关文章

  • python中级之文件操作
    引入 应用程序运行过程中产生的数据最先都是存放于内存中的,若想永久保存下来,必须要保存于硬盘中。应用程序若想操作硬件必须通过操作系统,而文件就是操作系统提供给应用程序来操作硬盘的虚拟概念,用户或应用程序对文件的操作,就是向操作系统发起调用,然后由操作系统完成对硬盘的具体......
  • python 可迭代对象 迭代器 生成器
    一个对象若要用for循环则需实现def__iter__(self,item)或def__iter__(self,item)方法可迭代对象实现了def__iter__(self,item)方法  迭代器  实现了def__iter__(self,item)和def__next__(self)方法  迭代器一定是可迭代对象可迭代对象不一定是迭代器from......
  • Python开发爬虫的五大优势
    爬虫是一种广泛应用于数据获取和信息收集的技术。Python作为一种功能强大且易于学习的编程语言,具备许多优势,使其成为开发爬虫的首选语言之一。本文将介绍Python开发爬虫的五大优势,并为您提供相关实例。1.简单易用:Python语法简洁明了,易于学习和理解。相较于其他编程语言,如Java或C++,P......
  • 用 Python 开发 Web 应用程序有哪些优势
    Python作为一种多用途的编程语言,在Web应用程序开发中具有许多优势,使其成为开发人员的首选之一。以下是使用Python开发Web应用程序的几个优势:1.简单易学的语法:Python具有清晰简洁的语法结构,易于学习和理解。这使得开发者能够更快速地编写和维护Web应用程序的代码,从而提高开发效率。2......
  • 为什么 Python可以提升游戏开发效率
    Python作为一种高效且易于学习的编程语言,在游戏开发领域具有诸多优势,能够显著提升开发效率。本文将探讨Python在游戏开发中的优势,并分析其在实际应用中的广泛应用及成功案例。Python作为一种高级编程语言,具有简单易学、清晰优雅的语法结构,以及丰富的第三方库和跨平台特性,使其成为游......
  • Python开发机器人控制程序的优点
     随着科技的不断进步,机器人在各个领域的应用越来越广泛。而开发机器人控制程序是实现机器人自主运行和执行的关键。在众多编程语言中,Python作为一种高级编程语言,具有许多优点,使其成为开发机器人控制程序的理想选择。本文将介绍Python开发机器人控制程序的优点。 1简洁易读: Pyt......
  • python中级之列表推导式
    Python列表推导式是什么列表推导式是Python语言特有的一种语法结构,也可以看成是Python中一种独特的数据处理方式,它在Python中用于转换和过滤数据。其语法格式如下所示,其中[if条件表达式]可省略。[表达式for迭代变量in可迭代对象[if条件表达式]]注意:学......
  • python中级之文件操作
    引入 应用程序运行过程中产生的数据最先都是存放于内存中的,若想永久保存下来,必须要保存于硬盘中。应用程序若想操作硬件必须通过操作系统,而文件就是操作系统提供给应用程序来操作硬盘的虚拟概念,用户或应用程序对文件的操作,就是向操作系统发起调用,然后由操作系统完成对硬盘的具体......
  • Python Decorators Brief
    参考的URL:https://www.runoob.com/w3cnote/python-func-decorators.htmlDecorators-->Pythonic切入点:函数--函数中的函数--函数中返回函数--将函数作为参数传递给另一个函数(简单装饰器)@符号-->将装饰器放到需要被装饰的函数前;@wraps()-->函数即使被装饰器装饰,也......
  • 用Python开发自动化测试的优点有哪些
    自动化测试是软件开发中必不可少的一部分,它可以提高测试效率、降低测试成本、保证测试质量等。而Python作为一种功能强大且易于学习的编程语言,被广泛应用于自动化测试领域。本文将介绍使用Python开发自动化测试的优点,并为您提供相关实例。1.简单易用:Python语法简单、易于理解和学习......