在使用包pygal
时,我必须更改pygal.util
模块中的实用程序函数。此函数由其他模块中的其他函数调用。我该怎么修补这个功能?现在,我已经在dist_packages中编辑了代码,但是必须有一种方法来动态地分配这个函数?
该函数为pygal.util.is_major
。我试着用以下方式来做:pygal.util.is_major = lambda x: False
,但是它不起作用。我认为这是因为包中的其他模块将此函数导入到它们的本地命名空间中。因此,更改它没有任何效果,因为其他模块已经将该函数的旧版本导入到它们的本地命名空间中。
发布于 2014-01-06 13:18:28
分配给is_major的原因是,在分配给它之前,其他两个pygal模块将is_major
导入到它们的本地名称空间。
from pygal.util import deg, cached_property, compute_scale, is_major
from pygal.util import (
is_major, truncate, reverse_text_len, get_texts_box, cut, rad, decorate)
如果您可以在导入这些模块之前对is_major
函数进行路径调整,那么它应该可以工作。如果你不能,你可以重新加载图形模块后,猴子补丁。
就像这样:
import pygal.util
import pygal.graph
import pygal.graph.radar
pygal.util.is_major = my_function
reload(pygal.graph)
reload(pygal.graph.radar)
https://stackoverflow.com/questions/20958895
复制相似问题