開始使用免費開始

巢狀函式 II

做得好!你剛剛在一個函式裡面又巢狀了一個函式。將函式巢狀的另一個很棒的原因是「閉包」(closure)。意思是,當內部函式被呼叫時,它會記住外層作用域的狀態。因此,只要是在外層作用域中區域定義的內容,即使外層函式已經執行完畢,內部函式依然可以使用。

繼續往下吧!在這個練習中,你會完成內部函式 inner_echo() 的定義,接著多次呼叫 echo(),每次傳入不同的引數。把練習完成,看看會輸出什麼結果!

本練習屬於課程

Python 函式入門

檢視課程

練習說明

  • 完成內部函式的函式標頭,使用函式名稱 inner_echo(),並加入單一參數 word1
  • 完成 echo(),讓它回傳 inner_echo
  • 我們已經呼叫了 echo(),把 2 當作引數傳入,並將回傳的函式指定給 twice。接下來由你呼叫 echo(),把 3 當作引數傳入,並將回傳的函式指定給 thrice
  • 按下 Submit 以呼叫 twice()thrice(),並印出結果。

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

# Define echo
def echo(n):
    """Return the inner_echo function."""

    # Define inner_echo
    def ____(____):
        """Concatenate n copies of word1."""
        echo_word = word1 * n
        return echo_word

    # Return inner_echo
    

# Call echo: twice
twice = echo(2)

# Call echo: thrice


# Call twice() and thrice() then print
print(twice('hello'), thrice('hello'))
編輯並執行程式碼