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

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

一、递归函数


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


1、递归函数形成条件


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


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


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




2、代码演示


下图的代码逻辑:


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


bbe73467ed7742fba04888f886cad941.png


二、闭包


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



1、构成条件


  • 函数中嵌套了一个函数


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


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


b713eb1c19cf418c9610d1d86ea5f386.png

也可写成:outter()()


4a3b73c5a03a4fa180e90e16857d993b.png

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

915e29ac3d7a424a846fba08f5d68a5f.png





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


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


1、装饰器:增加额外功能


99d11f5b39664c92aec24e0dfcb3e559.png



2、语法糖的使用

语法糖用法:    


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

151ba02218f5485ca1dd725cda8f8038.png



3、多个装饰器

74385f1a5c5a41d1959bc8bddd6db0e9.png

相关文章
|
2月前
|
测试技术 Python
Python装饰器:为你的代码施展“魔法”
Python装饰器:为你的代码施展“魔法”
263 100
|
3月前
|
设计模式 缓存 监控
Python装饰器:优雅增强函数功能
Python装饰器:优雅增强函数功能
282 101
|
2月前
|
缓存 Python
Python装饰器:为你的代码施展“魔法
Python装饰器:为你的代码施展“魔法
157 88
|
3月前
|
缓存 测试技术 Python
Python装饰器:优雅地增强函数功能
Python装饰器:优雅地增强函数功能
232 99
|
3月前
|
存储 缓存 测试技术
Python装饰器:优雅地增强函数功能
Python装饰器:优雅地增强函数功能
203 98
|
3月前
|
缓存 Python
Python中的装饰器:优雅地增强函数功能
Python中的装饰器:优雅地增强函数功能
|
3月前
|
存储 缓存 测试技术
理解Python装饰器:简化代码的强大工具
理解Python装饰器:简化代码的强大工具
|
4月前
|
程序员 测试技术 开发者
Python装饰器:简化代码的强大工具
Python装饰器:简化代码的强大工具
231 92
|
2月前
|
机器学习/深度学习 PyTorch 算法框架/工具
python torch基础用法
本教程系统讲解PyTorch基础,涵盖张量操作、自动求导、神经网络构建、训练流程、GPU加速及模型保存等核心内容,结合代码实例帮助初学者快速掌握深度学习开发基础,是入门PyTorch的实用指南。
509 6

推荐镜像

更多