Maison >développement back-end >Tutoriel Python >Demandez pardon, pas la permission : quand est-ce la meilleure approche de programmation ?

Demandez pardon, pas la permission : quand est-ce la meilleure approche de programmation ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-01 11:33:10843parcourir

Ask Forgiveness, Not Permission: When Is It the Better Programming Approach?

Démystifier "Demander le pardon et non la permission"

L'expression "demander pardon et non la permission" fait référence à un contraste entre deux approches de programmation : "demander la permission" et "demander pardon."

Style "Demander la permission"

Cette approche vérifie une condition avant tenter une opération :

if can_do_operation():
    perform_operation()
else:
    handle_error_case()

Cependant, ce style présente des limites :

  • Dans des environnements concurrents, les conditions peuvent changer entre la vérification et l'exécution de l'opération.
  • Définir les conditions précises de vérification des autorisations peuvent être difficiles.

"Demandez pardon" Style

Cette approche tente l'opération et gère les erreurs qui en résultent :

try:
    perform_operation()
except Unable_to_perform:
    handle_error_case()

Avantages de « demander pardon » :

  • Robustesse dans des environnements simultanés  : Il gère les changements de conditions pendant opération.
  • Simplicité : Cela évite d'avoir à définir des contrôles d'autorisation complexes.

Application aux propriétés des objets

Dans votre exemple, la propriété foo.bar ne doit pas être considérée comme un échec de l'objet foo s'il n'existe pas. Il s'agit plutôt généralement d'une erreur de programmation. Pour gérer cela, initialisez bar sur None et utilisez :

if foo.bar is not None:
    handle_optional_part(foo.bar)
else:
    default_handling()

Cela garantit que foo manque le champ bar ou a une valeur valide.

Conclusion

" "Demandez pardon et non la permission" ne consiste pas à excuser un mauvais codage. Il s’agit plutôt de donner la priorité à la robustesse et à la clarté dans des situations exceptionnelles où les opérations pourraient échouer. Dans le cas de propriétés d'objet facultatives, les représenter avec une valeur par défaut Aucune et utiliser des contrôles d'existence appropriés suit ce principe.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn