猴子修补和调度

时间:2011-10-13 14:15:12

标签: python monkeypatching

我有以下情况,一个名为enthought.chaco2的模块,我有很多导入,例如from enthought.chaco.api import ..

那么添加chaco.api并将其发送到正确的方法的最快方法是什么?

我尝试了一些方法,例如:

import enthought.chaco2 as c2
import enthought
enthought.chaco = c2

但它不起作用。我可能需要创建一个真实的模块并将其添加到路径中;这是唯一的方法吗?

1 个答案:

答案 0 :(得分:0)

您正在寻找的行为是什么?

您可以使用from enthought.chaco import api as ChacoApi,然后通过ChacoApi来解决模块中的所有内容,例如ChacoApi.foo()chaco_class = ChacoApi.MyClass()

您可以使用(并且不建议使用)from enthought.chaco.api import *并将模块的所有内容添加到基本命名空间。 您可以向__all__的{​​{1}}文件添加chaco变量声明,并将前一个示例(带*)仅导入您输入列表__init__.py的内容。

或者你可以按照你现在的方式专门导入你可能使用的任何内容,这在我看来完全没问题......