/

Python巢狀函式

Python巢狀函式

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

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

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

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

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

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

這是一個示例:

1
2
3
4
5
6
7
8
9
def talk(phrase):
def say(word):
print(word)

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

talk('我要去買牛奶')

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

1
2
3
4
5
6
7
8
9
10
11
def count():
count = 0

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

increment()

count()

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