写点什么

软件测试学习笔记丨闭包与装饰器

作者:测试人
  • 2024-03-07
    北京
  • 本文字数:580 字

    阅读完需:约 2 分钟

本文转自测试人社区,原文链接:https://ceshiren.com/t/topic/29830

闭包与装饰器

  • 闭包


闭包(Closure)是指在一个嵌套的函数内部访问其外部函数中定义的变量或函数的能力。换句话说,闭包是一个函数对象,它可以记住并访问它创建时的上下文环境中的变量。


闭包通常由两个部分组成:内部函数和与其相关的环境变量。


内部函数是在外部函数中定义的函数,它可以访问外部函数中的局部变量和参数,以及外部函数所在的作用域中的变量。


环境变量是在外部函数中定义的变量或其他函数对象,它被内部函数引用并记住,即使外部函数执行完成后仍然存在。


  • 装饰器


装饰器是 Python 提供的一种语法糖,装饰器使用 @符号加上装饰器名称,用于修改其他函数的行为,并且在不修改原始函数定义和调用的情况下添加额外的功能。


装饰器提供了一种简洁而优雅的方式来扩展和修改函数或类的功能。它本质上就是一个闭包函数。


装饰器的功能特点:不修改已有函数的源代码不修改已有函数的调用方式给已有函数增加额外的功能


def counter(func):    def inner():        global num  #修改全局变量需要使用 global , 修改外函数局部变量需要使用 nonlocal        func()        num += 1    return inner
@counterdef show(): pass
if __name__ == '__main__': num = 0 for i in range(0, 5): show() print("show函数调用的次数:",num)
复制代码

获取更多软件测试知识


发布于: 刚刚阅读数: 3
用户头像

测试人

关注

专注于软件测试开发 2022-08-29 加入

霍格沃兹测试开发学社,测试人社区:https://ceshiren.com/t/topic/22284

评论

发布
暂无评论
软件测试学习笔记丨闭包与装饰器_软件测试_测试人_InfoQ写作社区