关于python全局变量

今天踩了一个坑,记录一下,避免后犯

在constant.py 中定义了一个全局变量 ZH_LIST= [],以个用于存储配置一些信息;

在views.py 中引用了这个ZH_LIST ;

然后在app.py 启动的时候去初始化这个ZH_LIST = [“篮球”,“足球”, “羽毛球”]这个字典;

然而在views 响应请求的时候,却并没有得到理想中的列表,得到[];

在响应的时候设置断点查看ZH_LIST确实是[];

然后去init_ZH() 方法中去定位;

发现方法执行完,ZH_LIST是有值的;

-----------------------------------------------

在方法中global ZH_LIST 然后给ZH_LIST赋值;

这个时候就用到了可变与不可变类型的知识了;

这边ZH_LIST = [...] 是直接赋值,ZH_LIST指向了新的内存空间;

修改后的代码ZH_LIST.extends([...]), 就是在原数组内存地址上做操作;

修改后的views 那边的ZH_LIST也有了理想的值;

原文地址:https://www.cnblogs.com/huaizhi/p/11041687.html