lambda:c
这种函数意义何在?
当 c
是一个常量(你不打算在程序中改变它)时,这就是一个常值函数,常值函数和常数的区别自然是可以当函数用,可以用于一些需要回调的地方,在 Python 用另一个常用领域就是冒充一个类,因为对于 Python 而言 A()
无论 A
是类还是函数都是一个合法的语句。
例如 collections
模块中的 defaultdict
是一种可以设置默认值的字典,freqs = defaultdict(int)
常用于统计词频,可以直接通过 freqs[word] += 1
来增加计数器,defaultdict
发现 word
不在 freqs
中时会自动初始化 freqs[word] = int()
,也就是设置初值为 0
。那么如果因为某种原因我希望初值是 1
怎么办呢?只要定义:
freqs = defaultdict(lambda:1)
当 c
是一个变量时,还有一个用途是隐藏 c
这个变量,调用者只能通过函数访问 c
的值,而不能改变它。