b.py内容如下
c.py内容如下
config = "ONCE"
a.py内容如下
import b import c def a(): print(c.config) c.config = "TWO" print(c.config) print(id(c.config)) print("a方法执行完毕") a() b.b()
执行a.py,输出
===========================我是分割线===========================
但是。。。假如
======a.py====== import b from c import config def a(): global config print(config) config = "TWO" print(config) print(id(config)) print("a方法执行完毕") a() b.b() ======b.py====== from c import config def b(): print("b方法开始") print(config) print(id(config)) ======c.py====== config = "ONCE"
那么此时a.py输出为
id值不同,意味着不是同一个对象
因此如果需要使用可修改配置文件的全局变量,需要用文件名方式导入,将其当作一个全局类使用
单独导入或者模糊导入会拥有不同的id和引用类型