[问题] 一个奇怪的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