Python装饰器如何实现功能扩展?

2026-05-26 15:560阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计2016个文字,预计阅读时间需要9分钟。

Python装饰器如何实现功能扩展?

1. 装饰器定义:给已有函数增加额外功能的函数,本质上是一个闭包函数。 装饰器特点:不修改已有函数的源代码和调用方式,仅增加功能。


1. 装饰器的定义

就是​给已有函数增加额外功能的函数,它本质上就是一个闭包函数​。

​装饰器的功能特点:​

  • 不修改已有函数的源代码
  • 不修改已有函数的调用方式
  • 给已有函数增加额外的功能
  • ​闭包和装饰器的区分:​

    如果闭包函数的参数有且只有一个,并且是函数类型,那么这个闭包函数称之为装饰器。

    写代码要遵循开放封闭原则,它规定已经实现的功能代码不允许被修改,但可以被扩展。

    2. 装饰器的示例代码

    # 定义装饰器
    def decorator(func):
    def inner():
    # 在内部函数里面对已有函数进行装饰
    print('已添加登录认证')
    func()

    return inner


    def comment():
    print('发表评论')


    # 调用装饰器对已有函数进行装饰,左边的comment=inner
    comment = decorator(comment)

    # 调用方式不变
    comment()

    3. 装饰器的语法糖写法

    如果有多个函数都需要添加登录验证的功能,每次都需要编写func = decorator(func)这样代码对已有函数进行装饰,这种做法还是比较麻烦。

    阅读全文

    本文共计2016个文字,预计阅读时间需要9分钟。

    Python装饰器如何实现功能扩展?

    1. 装饰器定义:给已有函数增加额外功能的函数,本质上是一个闭包函数。 装饰器特点:不修改已有函数的源代码和调用方式,仅增加功能。


    1. 装饰器的定义

    就是​给已有函数增加额外功能的函数,它本质上就是一个闭包函数​。

    ​装饰器的功能特点:​

  • 不修改已有函数的源代码
  • 不修改已有函数的调用方式
  • 给已有函数增加额外的功能
  • ​闭包和装饰器的区分:​

    如果闭包函数的参数有且只有一个,并且是函数类型,那么这个闭包函数称之为装饰器。

    写代码要遵循开放封闭原则,它规定已经实现的功能代码不允许被修改,但可以被扩展。

    2. 装饰器的示例代码

    # 定义装饰器
    def decorator(func):
    def inner():
    # 在内部函数里面对已有函数进行装饰
    print('已添加登录认证')
    func()

    return inner


    def comment():
    print('发表评论')


    # 调用装饰器对已有函数进行装饰,左边的comment=inner
    comment = decorator(comment)

    # 调用方式不变
    comment()

    3. 装饰器的语法糖写法

    如果有多个函数都需要添加登录验证的功能,每次都需要编写func = decorator(func)这样代码对已有函数进行装饰,这种做法还是比较麻烦。

    阅读全文