我有时会在其中一个函数中看到带有kwarg = kwarg的代码,如下所示:
def func1(foo, kwarg):
return(foo+kwarg)
def func2(bar, kwarg):
return(func1(bar*2, kwarg=kwarg))
print(func2(4,5))
我通常试图避免这种表示法(例如使用kwarg1 = kwarg2)以避免任何可能的错误,但实际上这是否必要?
答案 0 :(得分:2)
没有错误 - 在这种情况下kwarg
只是一个变量名称 - 它不是保留的。但是,它可能会有一些混淆,因为def func(**kwargs):
是创建所有"关键字参数"的字典的通用语法。传递给函数的。由于您在此处没有这样做,因此使用这样一个相似的名称会造成不必要的混淆。虽然你不清楚你是在谈论使用这个确切的名字,所以这可能仅仅是这个例子的问题。
但从广义上讲,通过something=something
是相当普遍的做法。您可以在很多地方看到它,例如,如果您在Matplotlib中重复使用颜色调色板,您可以将color=color
传递到plot
,或者如果您需要在Pandas中构建标题列表,您可以将coloumns=columns
传递给DataFrame
。
底线是否应该清楚。如果是,那就很好。如果不是,那就不是了。