Skip to content

Latest commit

 

History

History
87 lines (61 loc) · 1.87 KB

File metadata and controls

87 lines (61 loc) · 1.87 KB
Error in user YAML: (<unknown>): found a tab character that violate indentation while scanning a plain scalar at line 3 column 3
---
- oeasy Python 0234
- 这是 oeasy 系统化 Python 教程,从基础一步步讲,扎实、完整、不跳步。愿意花时间学,就能真正学会。
- 本教程同步发布在: 
	- 个人网站: `https://oeasy.org` 
	- 蓝桥云课: `https://www.lanqiao.cn/courses/3584` 
	- GitHub: `https://github.com/overmind1980/oeasy-python-tutorial` 
	- Gitee: `https://gitee.com/overmind1980/oeasypython` 
---

嵌套调用

回忆

  • 上次了解函数
    • 函是信函
    • 是可以把很多语句封装(encapsulate)起来的
    • 甚至可以嵌套使用函数

图片描述

  • 函数可以自己嵌套调用自己么?

构造

图片描述

  • 定义一个add_one函数

图片描述

  • 尝试运行后

图片描述

  • 确实可以嵌套调用

跟踪

  • 在第2行设置断点

图片描述

  • 此时num为0
  • 是最里层add_one的调用
  • 本次应该返回1
  • c继续

继续跟踪

图片描述

  • 此时num为1
  • 是外层的add_one的调用
  • 本次应该返回2
  • c继续
  • 输出结果2
  • 程序结束

汇编理解

  • 红圈
    • 内层调用add_one
    • 参数是0
    • 结果是1
  • 绿圈
    • 外层调用add_one
    • 参数是红圈结果
    • 最终结果是2

图片描述

  • 我们去总结一下

总结

  • 函数确实可以对自身进行嵌套调用
  • 把函数的返回值作为参数传给函数本身

图片描述

  • 函数可以在函数自身里面再调用函数么?🤔
  • 自己调自己?
  • 我们下次再说👋

  • 本文来自 oeasy Python 系统教程。
  • 想完整、扎实学 Python,
  • 搜索 oeasy 即可。