Pyflakes是否应检测重复关键字参数的SyntaxError?是Bug还是使用误解?
这不是Bug,是对pyflakes用途的误解
pyflakes的核心定位是静态逻辑分析工具,它不会检测语法错误——它默认你输入的代码是符合Python语法规范的,只负责找出代码里的逻辑问题:比如未定义的变量、未使用的导入/变量、函数返回值不一致这类问题。
你给出的示例代码def f(x=0):pass; f(x=1,x=2)属于语法错误,这类错误是Python解释器本身的校验范畴,pyflakes从设计上就不会处理这类问题。当你运行这段代码时,Python解释器会直接抛出SyntaxError,但pyflakes不会对语法合法性做检查。
如果需要提前检测这类语法错误,你可以直接用Python解释器的语法检查功能(比如python -m py_compile),或者搭配专门做语法校验的工具,而不是依赖pyflakes。
内容的提问来源于stack exchange,提问作者Andy Pender
相关产品推荐
相关产品推荐

