Python échouera s'il y a un espace après la barre oblique inverse

Je suis sûr que c'est de notoriété publique, mais j'admets cet article dans le sens de l'autodiscipline parce que je l'ai fait.

De la conclusion

Contexte de cela

J'ai modifié le code écrit par d'autres dans le projet git géré par d'autres. La modification consiste simplement à ajouter Where de l'instruction SQL.

J'ai modifié le code comme suit.

Avant correction


    ...
    sql = "SELECT "\
          "  user.id ,"\
          "  user.name "\
          "FROM "\
          "  user "\
          "WHERE "\
          "  user.age >= 20 "\
          "  AND user.sex == 'M' "
    c.execute(sql)
    ...

modifié



    ...
    sql = "SELECT "\
          "  user.id ,"\
          "  user.name "\
          "FROM "\
          "  user "\
          "WHERE "\
          "  user.age >= 20 "\
          "  user.age <= 60 "\␣␣␣␣␣␣␣␣
          "  AND user.sex == 'M' "
    c.execute(sql)
    ...

Quelques semaines après avoir téléchargé le code sur git. À peu près au moment où j'ai oublié de l'appliquer à la production après avoir passé des examens et des vérifications. Le client m'a dit que l'endroit où je tirais SQL ne semblait pas fonctionner. Après avoir enquêté, j'ai eu cette erreur.

SyntaxError: EOL while scanning string literal

Je ne peux pas y croire.

Pourquoi c'est arrivé

En fait, ce code était un fichier géré séparément pour l'environnement de production et l'environnement de test. ← Cette structure elle-même n'est pas bonne Cependant, ce n'est pas le code que je gère, j'ai donc modifié le code de l'environnement de test comme on m'a dit. Après avoir réussi le test du développeur, copiez et soumettez le code modifié à la source de production. À ce moment-là, il semble qu'il y ait eu un blanc à la fin.

Une vérification complète a été effectuée pour la pièce corrigée et réussie. Le code de test a également été utilisé à cette époque. Comme il n'y a que des blancs dans le code de production, il est libéré sans être détecté. Et cela s'est produit lorsque le client l'a utilisé.

Contre-mesures

Il y a beaucoup de choses que je voudrais dire dans le flux de développement organisationnel,

Pour le moment, mettez en œuvre les éléments suivants à titre personnel

Je ne peux rien faire ...

Recommended Posts

Python échouera s'il y a un espace après la barre oblique inverse
Vérifiez si la chaîne est un nombre en python
Supprimer un caractère spécifique en Python s'il s'agit du dernier
[python] [meta] Le type de python est-il un type?
Que faire s'il y a un décimal dans python json .dumps
Si branche en fonction de l'existence ou non d'un élément spécifique dans la liste
Créez un script python pour vérifier si le lien à l'URL spécifiée est valide
Comment vérifier en Python si l'un des éléments d'une liste est dans une autre liste
python> vérifier NoneType ou non> si a == None:> si a vaut None:
Il y a un modèle que le programme ne s'est pas arrêté lors de l'utilisation du thread Python
[Python] Assurez-vous que la fonction reçue est une fonction définie par l'utilisateur
Vérifie s'il existe une chaîne de caractères spécifique pour tous les fichiers sous le répertoire Python et renvoie la ligne cible
Lors de la lecture d'une image avec SimpleITK, il y a un problème s'il y a du japonais dans le chemin
Quel est l'outil de visualisation Python le plus populaire après tout?
Je veux initialiser si la valeur est vide (python)
Déterminer si la chaîne est l'heure avec une expression régulière python
[python] Inversez avec des tranches! !! (Il y a aussi un commentaire sur les tranches!)
Y a-t-il un biais dans les nombres qui apparaissent dans les nombres de Fibonacci?
Y a-t-il un secret dans la fréquence des nombres de rapport de circonférence?
La liste Python n'est pas une liste
L'image est Namekuji
Dans le dictionnaire python, si une clé inexistante est accédée, initialisez-la avec une valeur arbitraire
[Blender] Script pour vérifier si celui sélectionné est un mesh
Jouez des sons en Python en supposant que le clavier est un clavier de piano
Déterminer si la sortie standard est acheminée lors de l'exécution d'un script Python
Après avoir fait des recherches sur la bibliothèque Python, j'ai un peu compris egg.info.
[Golang] Vérifiez si une chaîne de caractères spécifique est incluse dans la chaîne de caractères
Vérifier s'il y a un symbole spécifique dans le fichier exécutable et ses bibliothèques dépendantes (version simplifiée)
Python> Slice> Un décalage de tranche antérieur au début d'une chaîne est traité comme 0, et un après la fin est traité comme -1
Y a-t-il un spécial dans scipy? ??
[Python] Qu'est-ce que @? (À propos des décorateurs)
[python] Quelle est la clé triée?
[Python] Faire de la fonction une fonction lambda
Déterminez si la chaîne est formatable
Il n'y a pas de commutateur en python
Déterminez si la bibliothèque est installée.
À quoi sert le trait de soulignement Python (_)?
[Python] Détermine si un point de coordonnée est à l'intérieur ou à l'extérieur du polygone
[Python] Qu'est-ce qu'un argument formel? Comment définir la valeur initiale
Quel est le fichier XX à la racine d'un projet Python populaire?
Si vous voulez un singleton en python, considérez le module comme un singleton
[Introduction à Python] Quelle est la différence entre une liste et un taple?
L'espace est-il remplacé par un signe plus ou% 20 dans le traitement du codage en pourcentage?
Mémo DJango: Depuis le début (édition de l'écran de gestion) Il y a un mystère
J'ai créé un script pour vérifier si l'anglais est entré dans la position spécifiée du fichier JSON en Python.