Maison > développement back-end > Tutoriel Python > Devriez-vous « demander pardon, pas la permission » dans votre code Python ?

Devriez-vous « demander pardon, pas la permission » dans votre code Python ?

Mary-Kate Olsen
Libérer: 2024-12-10 11:07:16
original
949 Les gens l'ont consulté

Should You

La philosophie derrière « Demander le pardon et non la permission »

L'expression « demander pardon et non la permission » est souvent utilisée dans le codage pour décrire une programmation. style qui donne la priorité à l'exécution des opérations plutôt que de vérifier les autorisations au préalable.

Dans le code Pythonic, ce principe suggère qu'au lieu de en utilisant des instructions conditionnelles pour vérifier l'existence d'attributs ou la validité des opérations, il est plus efficace de tenter l'opération et de gérer les exceptions qui en résultent.

Exemple de scénario et approche « Demander pardon »

Considérez une classe avec une barre d'attributs facultative. En programmation traditionnelle, on peut vérifier si l'attribut existe avant de l'utiliser :

if foo.bar:
    # Do stuff
Copier après la connexion

Cependant, l'approche "demander pardon" conseille :

try:
    foo.bar  # Attempt to access the attribute
    # Do stuff    
except AttributeError:
    # Handle the error if the attribute doesn't exist
Copier après la connexion

Arguments pour "Demander pardon" Pardon"

  • Concurrence : Dans Dans des environnements multithread ou lors de la manipulation de ressources externes, l'état du système peut changer entre la vérification des autorisations et l'opération.
  • Précision : Définir des vérifications d'autorisation spécifiques peut être difficile, conduisant soit à des faux positifs ou des faux négatifs.

Exceptions pour les attributs facultatifs

Dans Dans le cas des attributs facultatifs, l'approche pythonique acceptée consiste à initialiser l'attribut à Aucun et à vérifier explicitement son existence :

if foo.bar is not None:
    # Handle the optional part
else:
    # Default handling
Copier après la connexion

Cela garantit que le code est clair et que l'intention de gérer les attributs facultatifs est 明确的.

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 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