在python中导入模块时会发生什么
我有以下用例:在python中导入模块时会发生什么,python,import,code-organization,Python,Import,Code Organization,我有以下用例: a.py: import b import c c.fun() def fun(): print 'b' def fun(): b.fun() b.py: import b import c c.fun() def fun(): print 'b' def fun(): b.fun() c.py: import b import c c.fun() def fun(): print 'b' def fun(): b.fun() py
a.py:
import b
import c
c.fun()
def fun():
print 'b'
def fun():
b.fun()
b.py:
import b
import c
c.fun()
def fun():
print 'b'
def fun():
b.fun()
c.py:
import b
import c
c.fun()
def fun():
print 'b'
def fun():
b.fun()
python a.py
不起作用。它失败,出现name错误:未定义全局名称“b”
我对python中导入的理解是在sys.modules
中添加了一个名称。如果是这种情况,则c.py
还应参见模块b
。但显然情况并非如此。那么,谁能解释一下导入模块时会发生什么呢
谢谢。您已将b和c添加到a模块,但未添加到c模块。当您在模块中时,您只能看到添加到模块中的内容。b和c已添加到sys.modules,但您尚未导入sys,也未使用sys.modules['b']。您已将b和c添加到a模块,但未添加到c模块。当您在模块中时,您只能看到添加到模块中的内容。b和c已添加到sys.modules中,但您尚未导入sys,并且您没有使用sys.modules['b']。模块c.py必须导入b才能使其正常工作。。。
导入模块时,它将被添加到仅在当前脚本范围内可用的globals字典中(使用“globals()”打印其内容)模块c.py必须导入b才能使其正常工作。。。
导入模块时,它将添加到仅在当前脚本范围内可用的globals字典中(使用“globals()”打印其内容)您必须添加要在该脚本中使用的所有模块 在函数参数中传递该模块的另一种方法,然后可以调用该模块方法
另一种方法是将其添加到uuu uuu uuu uuu uuu uuu uuu uuu uu uu uu uu uu uu uuu uu uu 在函数参数中传递该模块的另一种方法,然后可以调用该模块方法 另一种方法是将其添加到“内置项”中,这在的可能重复项的可能重复项中可以更好地解释