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
Libérer: 2025-01-01 11:33:10
original
820 Les gens l'ont consulté

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()
Copier après la connexion

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()
Copier après la connexion

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()
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal