在python DEAP包中,为什么一个函数可以从一个没有这样功能的模块中调用?

In python DEAP package, why a function can be called from a module which dose not have such function?

我刚开始使用python中的DEAP包。按照教程,我无法理解这个语句:

toolbox.register("cross",tools.cxTwoPoint)

我理解tools.cxTwoPoint是调用cxTwoPoint函数。但是,我查看了源代码,cxTwoPoint函数不在tools模块中,它是crossover.py中定义的函数。此外,我没有在 tools.py 中找到任何可能与 crossover.pycxTwoPoint 相关的语句。

有人可以帮助我吗?非常感谢!!!

tools.py 用于对算法进行基准测试。正如我们从 __init__.py 中看到的,有一条语句 from .crossover import * 表示导入与 __init__.py 位于同一目录的 crossover 模块中的所有函数。这为您提供了一种在其他文件中访问这些函数的简便方法。 __init__.py 需要 Python trent 目录作为包含包的回答:What is __init__.py for?.