假设我有文件main.py:
import math
import mymodule.py
print(math.ceil(5/3))
然后是mymodule.py:
print(math.ceil(10/3))
mymodule.py给出一个错误,即未定义数学,即使其父模块已导入数学。
考虑 main.py
和mymodule.py
需要使用math
lib,我是否需要导入两次?这似乎不是最佳的。什么是解决这个问题的最pythonic方式?
我知道这是一个愚蠢的例子,但我正在尝试将我制作的代码分段为几个模块用于组织,这个问题在多个层次上多次出现
答案 0 :(得分:0)
mymodule.py
是main.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())