In Python erstellt, wie dies ein Komma zu verlassen ist, natürlich, keine SyntaxError
:Unbeabsichtigte Komma, die ein Tupel
In [1]: x = 1 ,
In [2]: x
Out[2]: (1,)
In [3]: type(x)
Out[3]: tuple
Aber zur gleichen Zeit, wenn das Komma wurde versehentlich gesetzt, kann es schwierig sein, diese Art von "Problem" zu fangen, vor allem für Python-Neulinge.
Ich denke, wenn wir können fangen diese Art von „Problem“ early, statisch, mit Hilfe von PyCharm
Smart Code Qualitätskontrolle Funktionen; mypy
, pylint
oder flake8
statische Code-Analyse-Tools.
Oder eine andere Idee wäre einzuschränken/Highlight Erstellen eines Elements Tupel implizit ohne Klammern. Ist es möglich?
@onlynone btw, ich bin nicht sicher, was Sie durch die erste Frage/Aussage gemeint. Sollte ich einen mehr setzen "Ist es möglich?" zum ersten Teil der Frage? Ich denke, es ist ziemlich klar, was ich meinte, aber lassen Sie mich wissen, ob es etwas gibt, das verbessert werden kann, um die Frage sauberer zu machen. Vielen Dank. – alecxe
Ich denke, es ist in Ordnung. Es wurde nur seltsam formuliert: "Ist es möglich (um dieses Problem mit der statischen Code-Analyse zu entdecken)" ist ein naheliegendes "Ja!" Genau das machen statische Code-Analyse-Tools. Und es stellt sich heraus, einer der beliebtesten für Python, und einer, den Sie selbst erwähnen, tut genau das, was Sie wollen. Die andere Interpretation, "ist es möglich (um das Erstellen eines Item-Tupels ohne Parens einzuschränken)", scheint ein offensichtliches "Nein" zu sein, da Python genau so funktioniert. – onlynone
PEP8 ist ungewöhnlich vage und beschreibt die Verwendung von abschließenden Kommas als "OK, aber verwirrend:" Ich würde mehr autoritative Anleitung erwarten https://www.python.org/dev/peps/pep-0008/#when-in-use- Nachkommastellen –