Python模块中的代码注入

时间:2014-10-09 20:38:58

标签: python matplotlib

我有一个"图像"暴露名为" .extent() "的方法的类这个类是numpy.ndarray的子类。

所以,我可以打电话给

im = image( ( 256, 256 ), extent = ( 0.0, 3.14, -1.0, 1.0 ) )
matplotlib.pyplot.imshow( im, extent = im.extent() )

我真正想做的是注入代码,以便" .imshow() "为了能够简单地打电话

matplotlib.pyplot.imshow( im )

并拥有" .imshow() "自动设置范围。

编写另一个函数来做这件事是微不足道的,但我想要" matplotlib.pyplot.imshow()"这样做。

所以,我的问题是:

是否可以使用我编写的模型在其他模块的函数内部注入代码?

如果是,怎么做?

1 个答案:

答案 0 :(得分:4)

original = matplotlib.pyplot.imshow
matplotlib.pyplot.imshow = lambda x: original(x, extent=x.extent())
我认为

是一种方法。

甚至更好,如评论中所建议的

imshow = lambda x:matplotlib.pyplot.imshow(x,extent=x.extent())

即使它没有“注入代码”