簡體   English   中英

我不理解 python 中的用戶定義函數

[英]Im not understanding user defined functions in python

我是 python 的新手。誰能解釋一下 a,c,b 是如何打印的? 我知道 foo 首先執行,然后打印 a 但之后我什么都不懂。

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

    Output:
    a
    c
    b

你有 2 個獨立的函數:foo() 和 bar()

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

foo()

這兩個函數都處於初始化狀態(加載但未執行)但未被調用(執行)。 最后的 foo() 語句現在將只調用 foo() function。

好的,現在讓 go 逐步通過 foo() function。

  1. 它打印(“a”) - 正如預期的那樣
  2. 它調用 bar() function。因此我們現在轉到 bar() function。正如我們所見,bar() function 將打印 ("c") 並在那里結束。 因此,我們回到 foo() function 並在那里繼續。
  3. print("b") 將被執行。

正如您提到的,首先調用foo並打印a . 然后在foo function 中我們調用bar ,在bar中我們打印c然后 function bar返回到foo function 並繼續打印b 我希望它能澄清更多正在發生的事情。

這是發生了什么:

  1. 第一個 function 綁定到名稱foo
  2. 第二個 function 綁定到名稱bar
  3. 我們調用綁定到foo的 function :
    1. 我們"a"打印到控制台。
    2. 我們調用 function 綁定到bar
      1. 我們將"c"打印到控制台。
      2. 到達 function 的末尾,我們返回None
    3. bar()的返回值沒有做任何事情,所以我們把它扔掉了。
    4. 我們將"b"打印到控制台。
    5. 到達 function 的末尾,我們返回None
  4. foo()的返回值沒有做任何事情,所以我們把它扔掉了。
  5. 我們已經到達腳本的末尾,因此 Python 正常退出。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM