全球和本地导入

时间:2010-02-04 07:50:25

标签: python import module

我创建了一个将在几个python脚本中使用的模块。结构如下:

主档案:

import numpy as np
from mymodule import newfunction
f = np.arange(100,200,1)
a = np.zeros(np.shape(f))
c = newfunction(f)

mymodule.py:

def newfunction(f):
    import numpy as np
    b = np.zeros(np.shape(f))
    return b

if __name__ == "__main__":
    import numpy as np

不介意这个程序的功能,但问题是当我运行它时,我得到“NameError:全局名称'零'未定义”。

我错过了什么?

1 个答案:

答案 0 :(得分:3)

mymodule.py没有看到:

  import numpy as np

语句(多个)。 Python中的“import”语句与C ++中的#include不同,它只是创建导入模块中包含的新对象字典。如果要在该字典中使用“np”标识符,则必须在那里明确导入它。

关于

 if __name__ == "__main__":
     import numpy as np

- 仅当您将mymodule.py作为独立脚本执行时才会调用此方法,这可能不属于此问题。

编辑:

OP通过在其函数中添加import numpy as np来更改示例代码,我的答案是针对原始问题。