Python快速上手系列--装饰器--入门篇

简介: Python快速上手系列--装饰器--入门篇

何为装饰器?

装饰器就是给某一个函数或某一个程序,再不改变它原程序的基础上添加其他的功能.用于拓展原来函数功能的一种函数,这个函数的特殊之处在于它的返回值也是一个函数,使用python装饰器的好处就是在不用更改原函数的代码前提下给函数增加新的功能。一起来看看下面的小例子:

def one(an):
    print("进入装饰器")
    def two():
        print("装饰器内部")
        an()
        print("装饰器末尾")
    return two
@one
def three():
    print("我进入装饰器了")
three()

上面这个例子,你大可以理解为两个函数结合起来使用。每个人理解的方式不一样,所以大胆想象。one函数就是一个装饰器,我们可以直接把它用@符号引用在three函数上。此外,an()这个可以看作参数,在two函数中位置不同,对应的输出位置就不听,可以放在print("装饰器末尾")后面或者其他位置。这里其实可以理解为将three函数当作变量,引用到one函数中,然后在two函数中用an()进行调用。最后返回一个函数里面的值。得到的结果就是:

进入装饰器
装饰器内部
我进入装饰器了
装饰器末尾

那么我们接下来看看装饰器的传值

# -->>>清安<<<---
def name(age):
    print("进入装饰器")
    def first_name(a, b):
        print(f"名字是:{a}")
        age(a, b)
        print(f"年龄是:{b}")
    return first_name
@name
def name1(a, b):
    print("报上年龄")
if __name__ == '__main__':
    name1('清安', 18)
# 进入装饰器
# 名字是:清安
# 报上年龄
# 年龄是:18

看这个例子,是不是有点像函数中的位置传参呢。根据上面的小实例,这里理解其实就不难了。接下来看看另一种,传多个参数

# 传多个参数
def name(func):
    def infomation(*args, **kwargs):
        print(f"姓名:{args[0]}")
        print(f"性别:{args[1]}")
        print(f"年龄:{args[2]}")
        func(*args, **kwargs)
    return infomation
@name
def input(a, b, c):
    print("展示完毕")
if __name__ == '__main__':
    input('清安', '男', 18)
# 姓名:清安
# 性别:男
# 年龄:18
# 展示完毕

这里部分需要说明,就是取值的问题,这里传多个值进去,如果不用args[值]的这种方式,那么得到的就是整个元组了。此外,*args, **kwargs这个看着是不是很眼熟,这里前面章节函数部分有写到哦。可以回头看看来。

       后续也会出一些装饰器的用法。及时关注

目录
相关文章
|
23天前
|
大数据 数据处理 数据安全/隐私保护
Python3 迭代器与生成器详解:从入门到实践
简介:本文深入解析Python中处理数据序列的利器——迭代器与生成器。通过通俗语言与实战案例,讲解其核心原理、自定义实现及大数据处理中的高效应用。
59 0
|
4天前
|
测试技术 开发者 Python
Python单元测试入门:3个核心断言方法,帮你快速定位代码bug
本文介绍Python单元测试基础,详解`unittest`框架中的三大核心断言方法:`assertEqual`验证值相等,`assertTrue`和`assertFalse`判断条件真假。通过实例演示其用法,帮助开发者自动化检测代码逻辑,提升测试效率与可靠性。
37 1
|
4天前
|
缓存 测试技术 Python
Python装饰器:优雅地增强函数功能
Python装饰器:优雅地增强函数功能
153 99
|
4天前
|
存储 缓存 测试技术
Python装饰器:优雅地增强函数功能
Python装饰器:优雅地增强函数功能
138 98
|
9天前
|
缓存 Python
Python中的装饰器:优雅地增强函数功能
Python中的装饰器:优雅地增强函数功能
|
18天前
|
存储 缓存 测试技术
理解Python装饰器:简化代码的强大工具
理解Python装饰器:简化代码的强大工具
|
1月前
|
API 数据安全/隐私保护 开发者
Python自定义异常:从入门到实践的轻松指南
在Python开发中,自定义异常能提升错误处理的精准度与代码可维护性。本文通过银行系统、电商库存等实例,详解如何创建和使用自定义异常,涵盖异常基础、进阶技巧、最佳实践与真实场景应用,助你写出更专业、易调试的代码。
90 0
|
1月前
|
程序员 测试技术 开发者
Python装饰器:简化代码的强大工具
Python装饰器:简化代码的强大工具
153 92

推荐镜像

更多