假设我有这样一个目录结构:
- Documents/
- thesis_program/
- __init__.py
- classes.py
- utils.py
- GE_Test.py
- GE_Test_fail.py
classes.py 和 utils.py 包含一些类和函数。GE_Test.py 和 GE_Test_fail.py 包含完全相同的代码,除了导入部分。在GE_Test.py我以这种方式导入类和实用程序:
from utils import execute
from classes import Grammatical_Evolution
在GE_Test_fail.py中,我以这种方式导入类和实用程序:
from thesis_program.utils import execute
from thesis_program.classes import Grammatical_Evolution
出乎意料的是,我得到了不同的结果。这里有什么问题吗?我是否正确导入了模块?
我可以确保结果应该是相同的,因为我生成的随机数具有一定的种子
classes.py 也以某种方式依赖于 utils.py,因为我在 utils.py 中有几个常用函数。我怀疑 utils 也是系统使用的名称。所以在第二种情况下(GE_Test_fail.py)系统utils会覆盖我的utils.py。但这对我来说似乎没有意义。
classes.py 和 utils.py 的完整源代码可在此处获得(如果有助于发现问题所在):https ://github.com/goFrendiAsgard/feature-extractor