工具如何捕获无意中创建元组的尾随逗号?

问题描述 投票:0回答:1

在 Python 中,像这样留下尾随逗号当然不是

SyntaxError
:

In [1]: x = 1 ,

In [2]: x
Out[2]: (1,)

In [3]: type(x)
Out[3]: tuple

但是,同时,如果尾部逗号被不小心放了,可能很难发现这种“问题”,尤其是对于Python新手来说。

我在想我们是否可以借助PyCharm智能代码质量控制功能,尽早静态地

发现这种“问题”; 
mypy
pylint
flake8
 静态代码分析工具。

或者,另一种想法是

限制/突出显示在没有括号的情况下隐式创建一个项目元组。可以吗?

python pycharm static-analysis pylint flake8
1个回答
23
投票

pylint

已检测到这是一个问题(
自版本 1.7起)。

例如,这是我的

tuple.py

"""Module docstring to satisfy pylint""" def main(): """The main function""" thing = 1, print(type(thing)) if __name__ == "__main__": main()

$ pylint tuple.py No config file found, using default configuration ************* Module tuple R: 5, 0: Disallow trailing comma tuple (trailing-comma-tuple) ------------------------------------------------------------------ Your code has been rated at 8.00/10 (previous run: 8.00/10, +0.00) $ pylint --help-msg trailing-comma-tuple No config file found, using default configuration :trailing-comma-tuple (R1707): *Disallow trailing comma tuple* In Python, a tuple is actually created by the comma symbol, not by the parentheses. Unfortunately, one can actually create a tuple by misplacing a trailing comma, which can lead to potential weird bugs in your code. You should always use parentheses explicitly for creating a tuple. This message belongs to the refactoring checker. It can't be emitted when using Python < 3.0.
    
© www.soinside.com 2019 - 2024. All rights reserved.