gpt4 book ai didi

python - 为什么 from ... import 在 Python 中导入时似乎绑定(bind)到值?

转载 作者:太空狗 更新时间:2023-10-30 01:09:44 27 4
gpt4 key购买 nike

我读过的所有 Python 文档似乎都表明,撇开副作用不谈,如果您导入模块 A 然后引用 A.a,那么您引用的变量就好像您写的“from A import a”一样。

但是,这里似乎不是这种情况,我不确定发生了什么。我正在使用 Python 2.6.1。

如果我创建一个模块 alpha.py:

bravo = None

def set_bravo():
global bravo
bravo = 1

然后创建导入模块的脚本:

import sys, os
sys.path.append(os.path.abspath('.'))

import alpha
from alpha import bravo

alpha.set_bravo()
print "Value of bravo is: %s" % bravo
print "Value of alpha.bravo is: %s" % alpha.bravo

然后我得到这个输出:

Value of bravo is: None
Value of alpha.bravo is: 1

这是为什么?

最佳答案

from ... import ... 总是 立即绑定(bind),即使之前的 import 只导入了模块/包。

编辑:

对比以下内容:

import alpha

alpha.set_bravo()

from alpha import bravo

print "Value of bravo is: %s" % bravo
print "Value of alpha.bravo is: %s" % alpha.bravo

关于python - 为什么 from ... import 在 Python 中导入时似乎绑定(bind)到值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10661392/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com