def
func()
:#宣告變數
n=100#區域性變數
list1=[1
,2,3
,4]#區域性變數
print
(n,list1)
#宣告內部函式
definner_func()
:nonlocal n
#對list1裡面元素進行加5
for index,i in
enumerate
(list1)
: list1[index]
=i+5
list1.sort(
)#修改n變數
n+=101print
(list1)
#呼叫內部函式
inner_func(
)print
(list1)
print
(n)
總結:內部函式的特點:
1.可以訪問外部函式的變數
2.內部函式可以修改外部函式的可以型別的變數
3.內部函式修改全域性的不可變數時需要在內部函式中宣告global 變數名,內部函式修改外面函式的不可變數時,需要在內部宣告nonlocal 變數名。
4.locals()檢視本地變數有哪些,以字典形式輸出
globals()檢視全域性變數有哪些,同上。
載入函式到記憶體這句話記住!
在函式內部訪問外部的變數
變數是有作用域的.函式不僅可以定義在模組的最外層,還可以定義在另外乙個函式的內部,像這種定義在函式裡面的函式稱之為巢狀函式 例如 def print msg print msg 是外圍函式 msg zen of python def printer printer是巢狀函式 print msg pr...
訪問在閉包內部定義的變數
閉包函式 巢狀函式 通常想使用允許訪問和修改內部變數的函式來擴充套件閉包。通常,閉包的內部變數完全對外界隱藏。但是,可以通過編寫訪問器函式並將它們作為函式屬性附加到閉包來提供訪問。也即為閉包函式提供函式屬性。如下 def sample n 0 closure function def func pr...
訪問在閉包內部定義的變數
閉包函式 巢狀函式 通常想使用允許訪問和修改內部變數的函式來擴充套件閉包。通常,閉包的內部變數完全對外界隱藏。但是,可以通過編寫訪問器函式並將它們作為函式屬性附加到閉包來提供訪問。也即為閉包函式提供函式屬性。如下 def sample n 0 closure function def func pr...