【Python零基础入门篇 · 19】:递归函数、闭包、装饰器(语法糖用法、设置多个装饰器)

简介: 【Python零基础入门篇 · 19】:递归函数、闭包、装饰器(语法糖用法、设置多个装饰器)

递归函数


如果一个函数在内部不调用其它的函数,而是自己本身的话,这个函数就递归函数。


递归函数形成条件


  • 必须有一个明确的结束条件


  • 每进行更深一层的递归时,问题规模相比上次递归都要有所减少


  • 相邻两次重复之间有紧密的联系


代码演示


下图的代码逻辑:


  • 第一次:4 + func(3)


  • 第二次:4 + 3 + func(2)


  • 第三次:4 + 3 + 2 + func(1)


  • 在func(1)中,因为n==1,所以返回值1,代码结束,最终变成:4 + 3 + 2 + 1,结果为10



c11cc2a0e1304f3abb5a54b3e66801ed.png





闭包


两个函数的嵌套, 内部函数使用到了外部函数的变量, 这个现象就可以称之为产生闭包。


构成条件


  • 函数中嵌套了一个函数


  • 内层函数使用了外层函数的变量


  • 外层函数的返回值时内层函数的函数名

75861e07e92440509c28736de77ee2f0.png


也可写成:outter()()

362fe644261c4df19541c337bf0f3672.png


注意:虽然每次调用内函数,会开启一个函数,执行后消亡,但是闭包变量实际只有一份,每次使用内函数都在使用同一份闭包变量。


2b1620be6b6d48338e31bb0b1c2b55a8.png





装饰器(语法糖用法、设置多个装饰器)


装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象。


装饰器:增加额外功能

23051209473a46d8867b779f5b0ebc36.png


语法糖的使用


语法糖用法:


@装饰器名称(放到需要装饰的函数的头上即可)



dfea2a95cfd4485aa1fa3f03795a20dd.png


多个装饰器

247e25b20aec45a2aaded2b904fd8a72.png



相关文章
|
7天前
|
设计模式 缓存 测试技术
探索Python中的装饰器:从基础到高级应用
在本文中,我们将深入探讨Python中的装饰器,这是一种强大且灵活的工具,用于扩展或修改函数的行为。我们将从装饰器的基本概念和定义开始,逐步讲解它们的工作原理、如何创建和使用它们。接着,我们会探讨一些常见的装饰器用例,如日志记录、缓存和权限控制等。最后,本文将讨论一些高级话题,包括带参数的装饰器、使用functools模块增强装饰器以及装饰器与类方法的兼容问题。通过综合运用这些知识,您将能够更有效地利用Python的装饰器来优化您的代码。
21 10
|
4天前
|
Python
? Python 装饰器入门:让代码更灵活和可维护
? Python 装饰器入门:让代码更灵活和可维护
11 4
|
4天前
|
缓存 测试技术 Python
探索Python中的装饰器:简化代码,提高可读性
【9月更文挑战第28天】在Python编程中,装饰器是一个强大的工具,它允许我们在不修改原有函数代码的情况下增加额外的功能。本文将深入探讨装饰器的概念、使用方法及其在实际项目中的应用,帮助读者理解并运用装饰器来优化和提升代码的效率与可读性。通过具体示例,我们将展示如何创建自定义装饰器以及如何利用它们简化日常的编程任务。
10 3
|
5天前
|
Python
Python中正则表达式(re模块)用法详解
Python中正则表达式(re模块)用法详解
13 2
|
5天前
|
Python
Python 装饰器入门:让代码更灵活和可维护
Python 装饰器入门:让代码更灵活和可维护
10 1
|
6天前
|
API Python
使用Python requests库下载文件并设置超时重试机制
使用Python的 `requests`库下载文件时,设置超时参数和实现超时重试机制是确保下载稳定性的有效方法。通过这种方式,可以在面对网络波动或服务器响应延迟的情况下,提高下载任务的成功率。
21 1
|
7天前
|
Python
探索Python编程中的装饰器魔法
【9月更文挑战第26天】在Python的世界里,装饰器就像是一把瑞士军刀,小巧而功能强大。它们让代码更简洁、可维护性更强。本文将通过实际示例,带你领略装饰器的魔力,从基础到进阶,一步步揭开它的神秘面纱。
12 2
|
7天前
|
程序员 开发者 Python
探索Python中的装饰器:从基础到高级应用
本文旨在全面解析Python中一个强大而灵活的特性——装饰器(Decorators)。我们将从装饰器的基本定义出发,逐步深入到它们的高级应用。通过具体的代码示例和详细的解释,读者将能够掌握如何有效地使用装饰器来增强函数和类的功能,以及如何创建自定义装饰器来解决特定问题。无论是Python初学者还是经验丰富的开发者,都能在本文中找到有价值的内容,以提升编程技巧和代码质量。
13 1
|
5天前
|
Python
Python变量用法——单下划线变量名_ 原创
Python变量用法——单下划线变量名_ 原创
16 0
|
5天前
|
Python
Python变量用法——变量解包
Python变量用法——变量解包
15 0
下一篇
无影云桌面