我有以下测试代码:
def test():
m = 1
l[1] = 1
def main():
global l
global m
m = 0
l = [0]*3
test()
print m
print l
if __name__ == "__main__":
main()
在这种情况下,列表'l'的值会更新,而全局变量'm'的值保持不变。如果我在test()中将变量'm'声明为全局,则值会更新。为什么同样的逻辑不适用于列表?更具体地说,为什么我没有看到需要声明列表'l'在test()中是全局的?