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

时间:2017-06-16 15:59:53

标签: python class object deap

我刚开始在python中使用DEAP包。在本教程之后,我无法理解这个陈述:

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

我了解tools.cxTwoPoint是调用cxTwoPoint函数。但是,我检查了源代码,cxTwoPoint函数不在tools模块中,它是crossover.py中定义的函数。另外,我在tools.py中找不到与crossover.pycxTwoPoint相关的任何陈述。

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

1 个答案:

答案 0 :(得分:0)

tools.py用于对算法进行基准测试。正如我们在__init__.py中看到的,有一个语句from .crossover import *,这意味着导入crossover模块中与__init__.py位于同一目录的所有函数。这使您可以轻松地在其他文件中访问这些功能。并且需要__init__.py才能使Python将目录包含在包含的包中,如下所示:What is __init__.py for?