在Python中,函式可以嵌套在其他函式內。

在函式內定義的函式僅在該函式內部可見。

這對於創建對於函式有用但對於其他地方無用的工具非常有用。

也許你會問:如果它對其他地方無害,為什麼我要“隱藏”此函式?

首先,因為最好隱藏僅限於函式內部且其他地方無用的功能。

此外,我們還可以利用閉包(稍後會介紹)。

這是一個示例:

def talk(phrase):
    def say(word):
        print(word)

    words = phrase.split(' ')
    for word in words:
        say(word)

talk('我要去買牛奶')

如果你想要從內部函式中訪問外部函式中定義的變數,你需要首先將其聲明為「nonlocal」:

def count():
    count = 0

    def increment():
        nonlocal count
        count = count + 1
        print(count)

    increment()

count()

這在使用閉包時非常有用,稍後我們會介紹。