显然有些概念楼主尚未理解:
1. from xx import * 是把xx模块命名空间中变量拷贝到本地命名空间的同名变量上,所以对这个同名变量再赋值只会改变它的指向,而对xx中的变量没有任何影响。但是!由于a是字典,属于可变对象,因此可以使用a[1]='b'来修改xx模块中a的内容。如果a是不可变对象,看2.。
2. 针对不可变对象,应当使用普通的import xx,然后用xx.a=somewhat来修改。
3. 正因为模块顶层变量的修改有这种陷阱,一般推荐在xx模块中定义修改函数,而不是将顶层变量直接暴露给外部操作。