在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()
這在使用閉包時非常有用,稍後我們會介紹。