它不是自动全局的。
但是,
rep_i=1和之间存在区别
rep_lst[0]=1-前者重新绑定了name
rep_i,因此
global需要使用它来防止创建相同名称的本地插槽。在后一种情况下,您只是在修改现有的全局对象,该对象可以通过常规名称查找找到(更改列表条目就像在列表上调用成员函数一样,而不是重新绑定名称)。
为了测试它,尝试分配
rep_lst=[]的
test2(也就是将其设置为一个新的列表)。除非您声明
rep_lst
global,否则效果在外部
test2是不可见的,因为会创建一个具有相同名称的本地插槽并遮盖全局插槽。


![在Python中,为什么list []是自动全局的? 在Python中,为什么list []是自动全局的?](http://www.mshxw.com/aiimages/31/638109.png)
