Python中的函数参数

2 投票
1 回答
3397 浏览
提问于 2025-04-16 12:08

我正在努力理解在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 函数中使用 xyfmt,然后把剩下的参数传给 plt.plot


我觉得这其实不是你想要的(我能看出 plt.plot 需要接收 xyfmt,所以它们不应该被消耗掉)。我之前删掉了这个回答,但因为你发的代码似乎能正常工作,我就先把它留着,看看能否引出真正的问题!

撰写回答