Python导入:在"父"/其他孩子中改变"child"中的变量会改变变量吗?

Bra*_*eis 2 python import

假设你有3个模块,a.py,b.py和c.py:

a.py:

v1 = 1
v2 = 2
etc.
Run Code Online (Sandbox Code Playgroud)

b.py:

from a import *
Run Code Online (Sandbox Code Playgroud)

c.py:

from a import *
v1 = 0
Run Code Online (Sandbox Code Playgroud)

c.py会改变a.py和b.py中的v1吗?如果没有,有办法吗?

Ric*_*dle 5

所有声明如下:

v1 = 0
Run Code Online (Sandbox Code Playgroud)

可以做的是将名称绑定v1到对象0.它不会影响不同的模块.

如果我在那里使用不熟悉的术语,我想我可能是,我强烈建议你阅读Fredrik Lundh的优秀文章Python Objects:重置你的大脑.