本帖最后由 hellomyprogram 于 2023-8-2 09:23 编辑
这两个在返回值和实现上没有什么不同:
funA 在两段代码都返回 None
funB 在两段代码也都返回 None
两段代码都会输出 123 456
但是如果 funB 不是返回 None 的话,情况就有所不同。
在第一段代码中,funA 仅仅调用了 funB,而不将 funB 的返回值传输出去。
而第二段代码中,funA 将 funB 的返回值传输出去,因此调用 funA 也会返回 funB 的返回值。
以下是两段代码各自的运行过程:
第一段代码
- def funA():
- print("123")
- def funB():
- print("456")
- funB()
- funA()
复制代码
代码行数 | 代码 | 输出 | 备注 |
1 | def funA(): | | 定义 funA |
7 | funA() | | 调用 funA |
7>2 | print("123") | 123 |
7>3 | def funB(): | 123 | 定义 funB |
7>5 | funB() | 123 | 调用 funB |
7>5>4 | print("456") | 123
456 | 两个函数均返回了 None |
第二段代码
- def funA():
- print("123")
- def funB():
- print("456")
- return funB()
- funA()
复制代码
代码行数 | 代码 | 输出 | 备注 |
1 | def funA(): | | 定义 funA |
7 | funA() | | 调用 funA |
7>2 | print("123") | 123 |
7>3 | def funB(): | 123 | 定义 funB |
7>5 | return funB() | 123 | 返回 funB 的返回值 |
7>5>4 | print("456") | 123
456 | funB 返回 None |
7>5 | return funB() | 123
456 | funB 返回 None , funA 会把 funB 的返回值返回,也就是 funA 的返回值就是 funB 的返回值 |