Python 里的list是否区分local list或者是global list

Python 里的list是否区分local list或者是global list?
答案是:LEGB原则。Python LEGB 原则 - 专栏
你的问题没有表达清楚,修改一下。
耐心看了一下你的问题,python中所有都是对象,python中变量都是对对象的引用。
catNames = #1 catNames是对 这个对象的引用。catNames += #2 catNames 引用的list 还是原来的list对象你在另一个模块中带入这个模块,print(catNames) ,当然是新的值,看下面图片。Python 里的list是否区分local list或者是global list

Python 里的list是否区分local list或者是global list

Python 里的list是否区分local list或者是global list


■网友
你这都是global域的代码,local只是对def class之类才有概念,或者说,python中for while if之类的代码块并不是开启了一个新的namespace

■网友
你对“模块”的认识有误,你的代码里只有一个“模块”。所以你的代码里所有的变量都是global的,另外你说的“变量”在Python中都是对象的引用所以没有“list 在程序运行规则中,是否有区别于 variable”这么一说。Python与C语言的命名空间规则不同,像while/if/for这些块是没有独立的命名空间的,只有def会创建一个独立的命名空间,可详细看一看LEGB原则,希望对你能有所帮助。Python 里的list是否区分local list或者是global list


■网友
list 是可变对象,因而全局定义应该是global的,在全局内可变;局部定义在局部可变。
```
#!/usr/bin/env python
# encoding: utf-8
a = list()
def test(a=):
b =
b += a
print(b)
【Python 里的list是否区分local list或者是global list】 print(a)
if __name__ == \u0026#39;__main__\u0026#39;:
test(a)
print(a)
test(range(10,20))
print(a)```







    推荐阅读