Python导入模块依赖

时间:2017-03-15 19:33:56

标签: python python-3.x

假设我有文件main.py:

import math
import mymodule.py
print(math.ceil(5/3))

然后是mymodule.py:

print(math.ceil(10/3))

mymodule.py给出一个错误,即未定义数学,即使其父模块已导入数学。

考虑 main.pymymodule.py需要使用math lib,我是否需要导入两次?这似乎不是最佳的。什么是解决这个问题的最pythonic方式?

我知道这是一个愚蠢的例子,但我正在尝试将我制作的代码分段为几个模块用于组织,这个问题在多个层次上多次出现

2 个答案:

答案 0 :(得分:0)

mymodule.pymain.py的父级,因为您要在mymodule内导入main
您需要在math中导入mymodule,以便在main中继承。{ 然后不需要在main内导入。

mymodule.py

import math

main.py

import  mymodule
print mymodule.math.pow(10,2)

结果:

>>> 
100.0
>>> 

答案 1 :(得分:0)

这是非常基本的。如果你有一个单独的文件,比如mymodule.py,那么你可以在任何python文件中轻松地将该函数导入同一目录。

两个文件:

mymodule.py:

import math

def aFunc():
    return math.ceil(10/3)


# We could also just use this file as a standalone
if __name__ == "__main__":
    print(aFunc())

main.py:

import mymodule

print(mymodule.aFunc())

您还可以专门调出要导入的功能。

main.py(替代):

from mymodule import aFunc

print(aFunc())