En Python, en laissant une virgule finale comme celui-ci est, bien sûr, pas SyntaxError
:virgule finale Unintentional qui crée un tuple
In [1]: x = 1 ,
In [2]: x
Out[2]: (1,)
In [3]: type(x)
Out[3]: tuple
Mais, en même temps, si la virgule finale a été mis accidentellement, il peut être difficile d'attraper ce genre de "problème", en particulier pour les nouveaux arrivants Python.
Je pense si nous pouvons attraper ce genre de début « problème », statiquement, avec l'aide de PyCharm
smart fonctions de contrôle de la qualité du code; mypy
, pylint
ou flake8
des outils d'analyse de code statique.
Ou, une autre idée serait de restreindre/mettre en surbrillance en créant implicitement un nombre d'éléments sans parenthèse. C'est possible?
@onlynone BTW, je ne suis pas sûr de ce que vous vouliez dire par la première question/déclaration. Dois-je en mettre un de plus "Est-ce possible?" à la première partie de la question? Je pense que c'est clair ce que je voulais dire, mais laissez-moi savoir s'il y a quelque chose qui peut être amélioré pour rendre la question plus propre. Merci. – alecxe
Je suppose que c'est bien. C'était juste bizarrement formulé: "est-ce possible (pour détecter ce problème avec l'analyse de code statique)" est un peu évident "oui!" - C'est précisément ce que font les outils d'analyse de code statique. Et il s'avère que l'un des plus populaires pour python, et celui que vous mentionnez vous-même, fait exactement ce que vous voulez. L'autre interprétation, "est-ce possible (restreindre la création de tuples d'item sans parens)", semblerait être un "non" évident puisque c'est comme ça que fonctionne python. – onlynone
PEP8 est inhabituellement vague en décrivant cette utilisation de virgules flottantes comme "OK, mais déroutant:" Je m'attendrais à des conseils plus fiables https://www.python.org/dev/peps/pep-0008/#when-to-use- trailing-virgules –