Python 3.5中* args和** kwargs的变化是什么意思?

时间:2017-02-16 00:35:54

标签: python syntax-error python-3.5 args kwargs

来自docs

  

由于疏忽,早期的Python版本错误地接受了以下语法:

f(1 for x in [1], *args)
f(1 for x in [1], **kwargs)
  

Python 3.5现在正确引发了一个SyntaxError,因为如果不是函数的唯一参数,生成器表达式必须放在括号中。

这是什么意思?为什么上面的语法错了?有人可以显示一个示例代码,说明为什么这是一个糟糕的生成器表达式?

我想我理解这么多:

  • 有一个函数f()
  • 以生成器,args和kwargs为参数

但为什么args和kwargs用法错了?

0 个答案:

没有答案