讨论采用 * 模糊导入或者 单独导入变量 会在不同文件生成不同的对象
.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和引用类型

