Learn and Record12
def lazy_sum(*args):
def sum():
ax = 0
for n in args:
ax = ax + n
return ax
return sum
在這個例子中,我們在函式lazy_sum
中又定義了函式sum
,並且,內部函式sum
可以引用外部函式lazy_sum
的引數和區域性變數,當lazy_sum
返回函式sum
時,相關引數和變數都儲存在返回的函式中,這種稱為“閉包(Closure)”的程式結構擁有極大的威力。
def count():
fs = []
for i in range(1, 4):
def f():
return i*i
fs.append(f)
return fs
f1, f2, f3 = count()
輸出結果為
>>> f1()
9
>>> f2()
9
>>> f3()
9
原因在於返回的函式引用了變數i
,但它並非立刻執行。等到3個函式都返回時,它們所引用的變數i
已經變成了3
,因此最終結果為9
。所以返回函式不能引用任何迴圈變數,或者後續會發生變化的變數。
相關文章
- Learn SFM
- new learn
- scikit-learn: 使用conda安裝scikit-learn
- coca STUDY vs LEARN 搭配
- learn from collection framework designFramework
- Scikit-learn學習
- scikit-learn介紹
- Learn Android Studio 3 .pdfAndroid
- [CSS LEARN] 多行省略CSS
- [CSS LEARN]詳研BFCCSS
- Angr-Learn-0x01
- Scikit-learn SVM 實現
- Deep Learn I'm back.
- Learn English 10 times faster with these tipsAST
- 【C#】Learn C# in X minutesC#
- why to learn 計算機系統計算機
- [CSS LEARN]Border與多邊形CSS
- sk-learn 學習曲線圖
- Scikit-learn從入門到放棄
- 【譯】Learn D3 入門文件:Interaction
- 【譯】Learn D3 入門文件:Joins
- 練習英文寫作 Learn to write the english word
- Java 程式設計思想筆記:Learn 10Java程式設計筆記
- 【譯】Learn D3 入門文件:Further Topics
- MySQL死鎖案例 – Learn. Write. Repeat.MySql
- Learn Forge tutorial - 嚮導式Forge進階教程
- 《learn to count everything》論文閱讀、實驗記錄
- 為什麼 AI 時代更應該 Learn in PublicAI
- Scikit-learn可擴充套件學習簡介套件
- 《scikit-learn機器學習實戰》簡介機器學習
- learn-regex:正規表示式學習資源
- 第9章使用Scikit-Learn呼叫Keras的模型Keras模型
- 【scikit-learn基礎】--『預處理』之 離散化
- 【scikit-learn基礎】--『預處理』之 正則化
- 【scikit-learn基礎】--『預處理』之 標準化
- 使用scikit-learn機器學習庫裡面的xgboost機器學習
- Scikit-learn的六大功能!Python學習Python
- Scala Learn 5 模式匹配和樣例類 (待補充)模式