我不理解 python 中的用户定义函数

Im not understanding user defined functions in python

我是 python.can 的新手,谁能解释一下 a、c、b 是如何打印的?我知道 foo 首先执行然后打印 a 但之后我什么都不懂。

    def foo():
        print("a")
        bar()
        print("b")
    def bar():
        print("c")
    foo() 

    Output:
    a
    c
    b

正如您提到的,首先调用 foo 并打印 a。然后在 foo 函数中我们调用 bar,在 bar 中我们打印 c 然后函数 bar return 到 foo 函数并继续打印 b。我希望它能澄清更多正在发生的事情。

您有 2 个独立的函数:foo() 和 bar()

def foo():
    print("a")
    bar()
    print("b")
    
def bar():
    print("c")

foo()

两个函数都处于初始化状态(加载但未执行)但未被调用(执行)。 最后的 foo() 语句现在将只调用 foo() 函数。

好的,现在让我们逐步了解 foo() 函数。

  1. 它打印("a") - 正如预期的那样
  2. 它调用 bar() 函数。因此,我们现在转到 bar() 函数。 正如我们所见,bar() 函数将打印("c") 并在那里结束。 因此,我们回到 foo() 函数并在那里继续。
  3. print("b") 将被执行。

事情是这样的:

  1. 第一个函数绑定到名称foo
  2. 第二个函数绑定到名称bar
  3. 我们调用绑定到 foo 的函数:
    1. 我们将 "a" 打印到控制台。
    2. 我们调用绑定到bar的函数:
      1. 我们将 "c" 打印到控制台。
      2. 到达函数末尾,我们return None.
    3. bar() 的 return 值没有做任何事情,因此我们将其丢弃。
    4. 我们将 "b" 打印到控制台。
    5. 到达函数末尾,我们return None.
  4. foo() 的 return 值没有做任何事情,因此我们将其丢弃。
  5. 我们已经到达脚本的末尾,因此 Python 正常退出。