我正试图围绕位置和关键字参数在python中工作的方式,而且,似乎,我的失败相当悲惨。
给定具有呼叫签名matplotlib.pyplot.plot(*args,**kwargs)
的函数,可以将其称为
import matplotlib.pyplot as plt
x=[1,2,3]
y=[5,6,7]
plt.plot(x,y,'ro-')
plt.show()
现在,我正在尝试将其包装成我可以称为mplot(x,y,'ro-',...)
的内容,其中...
是原始函数准备接受的任何参数。以下失败,但我无法确定如何解决它:
def mplot(x,y,fmt,*args,**kwargs):
return plt.plot(x,y,fmt,*args,**kwargs)
mplot(x,y,'ro-')
非常感谢任何关于出路的指示。
答案 0 :(得分:1)
你需要这样:
def mplot(x,y,fmt,*args,**kwargs):
#do stuff with x, y and fmt
return plt.plot(*args,**kwargs)
我假设您的意图是在x
例程中使用y
,fmt
和mplot
,然后将其余参数传递给{{1} }。
我不相信这实际上是你想要的(我可以看到plt.plot
希望收到plt.plot
,x
和y
所以他们不应该消费)。我删除了这个答案,但由于你发布的代码显然有效,我会在一段时间内看到它,看看它是否会引发真正的问题!