[PYTHON] Flux de contrôle facile à lire

Flux de contrôle facile à lire

J'ai lu le code lisible Écrivons un moyen de rendre le flux de contrôle plus facile à lire

Liste des arguments de l'expression conditionnelle

if(length >= 10)
if(10 <= length)

Les deux ont le même sens, mais le premier est plus facile à lire

Valeurs qui changent vers la gauche, valeurs qui ne changent pas vers la droite

Dans l'exemple précédent, la constante de 10 est déplacée vers la droite. Amener une variable appelée longueur sur le côté gauche facilite la lecture.

Même en japonais "Si j'ai plus de 20 ans" "Si 20 ans a moins de mon âge" En y réfléchissant, le premier est plus facile à comprendre.

Mon âge change, mais 20 ans est une constante. En plaçant les valeurs qui changent sur le côté gauche et les valeurs qui ne changent pas sur le côté droit dans le même ordre qu'en langage naturel. Il s'avère que cela peut être facilement compris.

Opérateur triangulaire

L'opérateur ternaire est très pratique. Vous pouvez raccourcir l'instruction if-else de facilitation en utilisant les éléments suivants

if(hour >= 12) {
  time_str += "pm";
} else {
  time_str += "am";
}

//Utiliser l'opérateur ternaire
time_str += (hour >= 12) ? "pm" : "am";

Mais si vous l'utilisez à l'aveuglette, cela peut être difficile à comprendre.

return exponent >= 0 ? mantissa * (1<<exponent) : mantissa/(1<< -exponent);

Rendre le nid peu profond

Répondez lorsque le résultat de l'utilisateur est réussi et que l'autorisation est obtenue. Si le résultat de l'utilisateur réussit et que l'autorisation n'est pas donnée, une erreur vide est renvoyée. Si le résultat de l'utilisateur échoue, une erreur est renvoyée. En traitement.

Ça devient un peu compliqué.


if(user_result == SUCCESS) {
  if(permission_result != SUCCESS) {
    reply.WriteErrors("error reading permissions");
    reply.Done();
    return;
  }
  reply.WriteErrors("");
} else {
  reply.WriteErrors(user_result);
}
reply.Done();

Revenez tôt pour supprimer la nidification

//L'utilisateur d'abord_result !=Il renvoie le résultat de SUCCESS.
if (user_result != SUCCESS) {
  reply.WriteErrors(user_result);
  reply.Done();
  return;
}

//Le reste est utilisateur_result ==Uniquement pour le SUCCÈS
if(permission_result != SUCCESS) {
  reply.WriteErrors(permission_result);
  reply.Done();
  return;
}

reply.WriteErrors("");
reply.Done();


Cela a rendu le nid moins profond. Le flux de contrôle pourrait être simplifié en retournant tôt avec retour.

Recommended Posts

Flux de contrôle facile à lire
Comment lire PyPI
Comment lire JSON
Facile à utiliser SQLite3
Rendre avec la syntaxe facile
Conseils pour coder courts et faciles à lire en Python
Un moyen simple de renommer des fichiers
E-Cell 4 Intermédiaire facile à utiliser
E-Cell 4 édition débutant facile à utiliser
Copie facile dans le presse-papier sous Linux
Un moyen simple de personnaliser l'importation Python
Comment lire les données de la sous-région e-Stat
Django 1.11.1 Téléchargeur d'images Points faciles à trébucher
Comment lire l'ensemble de données SNLI
Installez facilement pyspark avec conda
Flux fluide en optimisant le contrôle du signal
E-Cell 4 Advanced Edition facile à utiliser
Bloc-notes Jupyter facile à utiliser (Python3.5)
Afficher les différences json de manière facile à lire
Dessinez facilement des graphiques avec matplotlib
Python facile à apprendre en écrivant
Article à lire après l'article introductif de Locust
[Tutoriel Python] Une introduction facile à Python