Skip to content

Latest commit

 

History

History
156 lines (105 loc) · 3.64 KB

203-848690-直接返回_电路短路_汇编理解_return_返回值.sy.md

File metadata and controls

156 lines (105 loc) · 3.64 KB
show version enable_checker
step
1.0
true

返回值

回忆

  • 上次我们了解了 函数返回值
    • 函数可以返回字符串
    • 也可以返回整型变量
    • 甚至可以返回NoneType类型的None
    • 啥都不返回
      • 其实最终也返回了个None
  • 在函数中遇到了return
    • 直接就返回了
    • 后面的东西全被短路
    • 什么是短路来着??🤔

图片描述

短路

  • 在有水的时候
    • 电路走的是水滴这条路
    • 灯泡被短路
    • 电池被烧坏

图片描述

  • 这种现象就是短路

在逻辑判断中的短路

图片描述

  • or 左边出现True
  • and 左边出现False
  • 就会将 右边短路

图片描述

  • 当时使用 print函数验证了一下

图片描述

  • 现在可以自己定义函数来验证短路的规律吗?
    • 不要翻页
    • 试着自己定义验证函数

自定义函数

图片描述

  • 函数已经定义好了

图片描述

  • 如何验证呢?

验证and

图片描述

  • 确实add左边为False的时候
    • 右边部分
      • 直接被短路

验证 or

  • or左边为True的时候
    • 右边部分
      • 直接被短路

图片描述

  • 函数中定义的那些局部变量后来怎么样了?

局部变量

图片描述

  • a、b、c不是返回值
  • 在函数返回之后
  • 如何了呢?

调用过程

  • 调用的时候
    • 会把当前调用的的地址压到函数栈中
      • return的时候就回到这里
  • 然后从f函数的开始进行执行
    • 内部的这些a、b、c
    • 都是int型的变量
    • 生命周期就是 函数范围内
    • 会指向相应的小数据池
  • 函数结束后
    • 这些int型变量的引用数减1
    • 程序播放头跳回到调用的位置继续执行
  • 这些是中间过程
  • 不是最终需要的东西

过程变量

  • 随着函数过程的结束
    • 这些中间过程中产生的变量
    • 也就是这些帧上面的变量
    • 也就消失不见

图片描述

  • 相关内存被释放了
  • 调试的时候可以让函数快速返回吗?

尝试调试

图片描述

  • 尝试调试

进入函数

  • 进入sorry函数
    • 输出了一个s

图片描述

  • 这时候如果直接按下r
    • 直接跳出sorry函数

图片描述

  • r在这里是什么意思呢?

r

  • 帮助文档

图片描述

  • r 的意思 就是return
    • 继续执行直到当前函数结束

总结

  • 我们这次了解了函数返回值
    • 函数可以返回字符串
    • 也可以返回整型变量
    • 甚至可以返回NoneType类型的None
      • 啥都不返回
      • 其实最终也返回了个None
    • 函数必须返回
  • 我们能做点好玩的函数么?🤔
  • 我们下次再说👋