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



我刚刚开始使用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 *这意味着导入crossover模块中的所有函数,该模块与__init__.py位于同一目录。这为您提供了一种在其他文件中访问这些功能的简单方法。并且__init__.py需要使 Python trent 目录包含包,如:__init__.py有什么用?.

最新更新