今天遇到的报错其实是:
'list' object is not callable
输出list一看,果然发现list被其他变量覆盖了

解决方法
两个:
1. del list
这里就要讲到python的del和c++的del的不同了。前者是删除变量(从全局字典里面移除),后者是删除该变量指向的内存。
那为什么del list以后list会恢复到原本的内置函数的地址呢?
我的理解是:(如果误解,欢迎指正!)
__builtins___本身代表一个命名空间,全局命名空间是优先于它的,全局里的list删掉了,如果__builtsin__这个命名空间里面有,就默认使用这个命名空间里面的。(builtins__来自__builtin module(Python 2,注意缺少s),或builtins module(Python 3,带s但没有下划线).)
说到这儿,可能很多人会好奇python的GC机制,可以看下这个博文https://juejin.im/post/5b34b117f265da59a50b2fbe
2. list=builtins.list
原理含在1里面啦,不过还是建议用1(用2也问题不大hh