Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中导入模块时会发生什么_Python_Import_Code Organization - Fatal编程技术网

在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

在函数参数中传递该模块的另一种方法,然后可以调用该模块方法

另一种方法是将其添加到“内置项”中,这在

的可能重复项的可能重复项中可以更好地解释