Python中的函数参数
我正在努力理解在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-')
如果有人能给我一些建议,我会非常感激。
1 个回答
1
你需要这样做:
def mplot(x,y,fmt,*args,**kwargs):
#do stuff with x, y and fmt
return plt.plot(*args,**kwargs)
我假设你的意思是想在你的 mplot
函数中使用 x
、y
和 fmt
,然后把剩下的参数传给 plt.plot
。
我觉得这其实不是你想要的(我能看出 plt.plot
需要接收 x
、y
和 fmt
,所以它们不应该被消耗掉)。我之前删掉了这个回答,但因为你发的代码似乎能正常工作,我就先把它留着,看看能否引出真正的问题!