Je jouais avec Python et j'ai réalisé que nous n'avions pas besoin d'utiliser l'opérateur '+' pour concaténer des chaînes statiques. Mais cela échoue si je l'assigne à une variable.
Par exemple :
string1 = 'Hello' 'World' #1 works fine
string2 = 'Hello' + 'World' #2 also works fine
string3 = 'Hello'
string4 = 'World'
string5 = string3 string4 #3 causes syntax error
string6 = string3 + string4 #4 works fine
Maintenant, j'ai deux questions :
- Pourquoi l'affirmation 3 ne fonctionne pas alors que l'affirmation 1 fonctionne ?
- Y a-t-il une différence technique, comme la vitesse de calcul, etc., entre les déclarations 1 et 2 ?
4 votes
C'est tout simplement similaire à C/C++ où
"hello " "world"
seront automatiquement concaténés ensemble1 votes
Il y a un rapport de bogue sur ce comportement, mais il a été rejeté parce qu'il est de conception : legacy.python.org/dev/peps/pep-3126
2 votes
Pylint a un avertissement pour certains cas où cette fonctionnalité du langage est source d'erreurs maintenant :
implicit-str-concat-in-sequence
. Disponible depuis Pylint 2.2 : pylint.pycqa.org/fr/stable/whatsnew/2.2.html