[問題] 一個奇怪的return用法

作者: snobbery (egoist)   2014-04-30 03:23:55
在scikit範例程式碼當中, 我看到以下那樣的片段:
class StemmedTfidfVectorizer(TfidfVectorizer):
def build_analyzer(self):
analyzer=super(TfidfVectorizer, self).build_analyzer()
return lambda doc: (english_stemmer.stem(w) for w in analyzer(doc))
我看不懂這樣的return寫法,
一般來說, return後面不就是傳回一個變數, 或是一個list什麼的,
但是這裡怎麼又有lambda這種看起來像是變數的東西,
可又有doc: 以及後面那堆東西,
這樣要怎麼解讀呢?
作者: birdhackor (夜殘狼)   2014-04-30 03:31:00
lambda 是匿名函數,簡單來說這個回傳是回傳一個匿名函式物件
作者: Microscft (小軟哥)   2014-04-30 09:54:00
先別管lambda了 你連for語法都不懂 是不是該買本入門書來好好k個兩三次再來看scikit這種高級貨你現在很像剛學會26個英文字母就急著跑去翻莎士比亞到處都看不懂不會覺得很受挫很打擊信心嗎??
作者: ccwang002 (亮)   2014-04-30 10:06:00
縮排歪了?它回傳一個函式,這函式執行回傳 generator

Links booklink

Contact Us: admin [ a t ] ucptt.com