我是Python的新手,想知道为什么可以从外部访问在主程序中定义的变量,但在自定义函数中无法访问。
def f():
print(l)
if __name__ == '__main__':
l = [1,2,3]
f() # output: [1,2,3]
但在函数中执行时遇到错误
def f1():
l1 = [1,2,3]
f2()
def f2():
print(l1) # error: global name 'l1' is not defined
if __name__ == '__main__':
f1()
第一个例子真的让我困惑了,据我所知,在C/C++或其他语言中,我们不能引用未定义的变量,因此为什么这里是合法的,而第二个例子却不合法呢?
l.append(4)
将正常工作。 - deceze