关于python导包问题
发布时间:2020-12-20 10:40:37 所属栏目:Python 来源:网络整理
导读:讨论采用 * 模糊导入或者 单独导入变量 会在不同文件生成不同的对象 .a└── mypackage ├── a.py ├── b.py ├── c.py ? b.py内容如下 import c def b(): print ( " b方法开始 " ) print (c.config) print (id(c.config)) c.py内容如下 config = " O
讨论采用 * 模糊导入或者 单独导入变量 会在不同文件生成不同的对象 .a
└── mypackage
├── a.py
├── b.py
├── c.py
?
b.py内容如下 import c def b(): print("b方法开始") print(c.config) print(id(c.config)) 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,输出 ONCE TWO 2492322048184 a方法执行完毕 b方法开始 TWO 2492322048184 id值相同,意味着此时a,b文件共用一个对象 ===========================我是分割线=========================== 但是。。。假如 ======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输出为 ONCE TWO 1813891082424 a方法执行完毕 b方法开始 ONCE 1813894255144 id值不同,意味着不是同一个对象 ? 因此如果需要使用可修改配置文件的全局变量,需要用文件名方式导入,将其当作一个全局类使用 单独导入或者模糊导入会拥有不同的id和引用类型 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |