遍歷:就是對函式的內部方法重新呼叫函式自己
閉包:外部函式返回內嵌函式
我們先看乙個很簡單的函式(使用os.walk內建函式)
import os好了,看下結果def test_a(osptah):
for root,item,files in os.walk(osptah):
for file in files:
print(os.path.join(root,file))
自己編寫函式實現遍歷檔案
**(注意看內部方法呼叫函式自己)
deftest_b(ospath):結果for i in os.scandir(ospath):
if os.path.isfile(i):
print(os.path.join(ospath,i))
elif os.path.isdir(i):
test_b(i)
ok這就是遍歷是不是很簡單,下面開始介紹閉包
**結果
ok上面就是閉包了,接下來再看看不返回內部函式有啥區別
不返回內部函式**
def test_a(n):結果num=n
def test_b():
print(num)
if __name__ == '__main__':
test_a(5)
返回內部函式**
def test_c(n):結果num = n
def test_b():
print(num)
return test_b
if __name__ == '__main__':
# test_a(5)
b=test_c(5)
b()
咦,是不是發現有點意思了,那我們再看下乙個
**
def test_c():結果n=0def test_b():
nonlocal n
n=n+1
print(n)
return test_b
if __name__ == '__main__':
# 當使用閉包時,變數並不會隨著函式的呼叫結束而銷毀
# 也就是可以保持程式上一次執行後的狀態然後繼續執行。
t=test_c()
t()t()
t()
ok這個呢就是咱們的結論
1.內嵌函式必須引用乙個定義在閉合範圍內(外部函式裡)的變數——內部函式引用外部變數
2.外部函式必須返回內嵌函式——必須返回那個內部函式
第一階段練習
1 輸入乙個整數,把該整數分別按照八進位制 十進位制 十六進製制形式輸出 include stdio.h main 2 輸入乙個小數 整數部分3位 小數部分5位 把該小數分別按照以下格式輸出 小數部分4位寬度,整個數字8位寬度 小數部分3位寬度,整個數字9位寬度,空白部分使用0填充 include ...
第一階段 2015 12 2016 03
距離上一次寫部落格,大半年就過去了,這半年,都做了些什麼呢,生活又都有些什麼變化呢。2015的下半年是收穫的半年吧。第二,學ios的過程中結識了新的朋友,耳機哥,是很棒的一件事。第三,得到了乙份很美滿的愛情。最終在一起,還好沒錯過。第四,開始正視自己的不足,不再逃避,開始認真製作簡歷,並開始找工作,...
u boot第一階段
u boot 第一階段 位置 cpu arm920t start.s 流程分析 1.儲存一些全域性變數,用於啟動程式將 從flash拷貝到ram或其他使用。有一些變數的值是通過鏈結指令碼得到的,如 text base 位於board 2440 config.mk 中 bss start end 位於...