我经常要制作基于其他现有情节的情节。我没有编写一个复制现有的新函数,而是想将一个装饰器应用到matplotlib图中,该图可能会添加额外的行等。我写了下面的代码,但是没有用。我想知道是否有人可能知道这样做的正确方法。
所以这就是目标:
x, y = np.linspace(0,5), np.linspace(0,10)
x2,y2 = np.linspace(0,5), np.linspace(0,5)
plt.plot(x,y)
plt.plot(x2,y2)
plt.show()
现在在下面的代码中,我用一行创建了一个图。然后我尝试在装饰器中添加第二条绘制线。我知道代码不起作用,但想知道是否有人可以告诉我如何解决这个问题。
def overplot(func):
def testplot_wrapper(func):
x, y = np.linspace(0,5), np.linspace(0,10)
plt.plot(x,y)
plot.show()
return(testplot_wrapper)
@overplot
def testplot():
x, y = np.linspace(0,5), np.linspace(0,10)
plt.plot(x,y)
plt.show()
p = overplot(testplot)
p.show()
目标是制作一个
的情节答案 0 :(得分:3)
您需要致电func
:
def overplot(func):
def testplot_wrapper():
x, y = np.linspace(0,5), np.linspace(0,10)
plt.plot(x,y)
func()
return(testplot_wrapper)
@overplot
def testplot():
x, y = np.linspace(0,5), np.linspace(0,5)
plt.plot(x,y)
testplot()
plt.show()