【发布时间】:2016-08-01 23:40:45
【问题描述】:
我有时会在如下所示的函数之一中看到带有 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)以避免任何可能的错误,但这真的有必要吗?
【问题讨论】:
-
通常你会看到
**kwargs。另外,return 不需要括号 -
您认为这段代码的哪个特定方面可能是危险的?如果您担心的话,对参数和传递的值使用相同的名称并没有错。
-
@user2357112 我只是觉得这个符号看起来有点奇怪。显然,我不期望上面的简单示例会出现问题,但我想知道当代码变得更复杂时,上面的符号是否会导致问题。
-
kwarg=kwarg的“更复杂”示例是什么?我在这里看到的最大问题是命名一个简单的变量kwarg,这很荒谬。应该为 **kwargs 语法保留这样的名称。
标签: python function notation keyword-argument