首页 > 解决方案 > 为什么在这个例子中没有提出未定义的 NameError?

问题描述

s为什么在下面的示例中没有为变量引发 NameError ?

from collections import defaultdict
s = defaultdict(lambda : len(s))

标签: python

解决方案


出于同样的原因,这有效:

def foo():
    print(bar)

bar = 'baz'

foo()

lambda唯一定义了一个函数。到该函数被调用并尝试访问时s,它s已经存在。


推荐阅读