浅谈装饰器

装饰器

装饰器在Python中使用的是比较广泛的,装饰器主要的作用就是在不改变原先代码的情况下给源代码添加功能,比如在版本迭代过程中需要给源代码添加功能,有不方便修改原先的代码,这时候用装饰器是最好的选择。
下面的代码是给test添加功能(不使用语法糖 @ 的情况):
def set_fun(func):
    def call_fun(*args, **kwargs):
        print("添加功能")
        return func(*args, **kwargs)
    return call_fun

def test(*args, **kwargs):
    print("test is show")

# 调用函数
test = set_fun(test)
test()
使用语法糖 @ 的情况:
def set_fun(func):
    def call_fun(*args, **kwargs):
        print("添加功能")
        return func(*args, **kwargs)
    return call_fun

@set_fun   # 相当于test = set_fun(test)
def test(*args, **kwargs):
    print("test is show")

# 调用函数
# test = set_fun(test)
test()
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,836评论 18 139
  • Python的装饰器是个好东西,它能干很多事情。但对于新手,它看起来似乎没那么简单。但事实上,装饰器本身也只是个函...
    子休_阅读 1,147评论 0 4
  • 文/易觉 黑夜徐徐地绽开, 清风飒飒地拂面而来, 笛声荡漾在远处的湖心, 闷雷乍起, 过客人庙前推门不入, 枫叶画...
    易觉阅读 310评论 0 2
  • 孤单的鸟,飞过我的海岛。 剩下的尸骨,被藏匿在深渊里,一张纸上,涂满雪花。不懂,在黄昏里,找到一架尸骨。我看着画卷...
    冯玙哲阅读 199评论 0 1
  • 罗尔夫.多贝里这本书很有意思,他提出了52种错误的思维方式,而这些思维方式就是我们的大众思维,并且...
    丹尼可爱熊阅读 236评论 0 0