Maison >développement back-end >Tutoriel Python >Quand utiliser « essayer » ou « if » pour gérer les valeurs potentielles nulles en Python ?

Quand utiliser « essayer » ou « if » pour gérer les valeurs potentielles nulles en Python ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-12 06:30:02684parcourir

When to Use 'try' vs. 'if' for Handling Potential None Values in Python?

Quand utiliser « try » ou « if » pour les tests de valeur en Python

En Python, lors du test si une variable a un valeur, le choix entre utiliser « try » ou « if » se pose souvent. Cette question vise à fournir des indications sur la justification de chaque construction.

Considérons une fonction qui renvoie soit une liste, soit aucune valeur. Pour vérifier le résultat avant le traitement, nous avons deux options :

result = function();
if (result):
    for r in result:
        # process items

ou

result = function();
try:
    for r in result:
        # Process items
except TypeError:
    pass;

Justification de « essayer »/« sauf »

L'approche 'try'/'sauf' suppose la présence d'une valeur dans 'result' et gère les exceptions potentielles (par exemple, TypeError si la fonction renvoie None). Cela suit le principe EAFP (Easier to Ask for Forgiveness than Permission), qui privilégie la détection des exceptions lorsqu'elles se produisent plutôt que de les vérifier au préalable. Il est plus efficace dans les scénarios où les exceptions sont rares.

Justification de « si »

L'approche « si » vérifie explicitement la présence d'une valeur avant de tenter de le traiter. Bien que cela puisse être plus lent, il est recommandé lorsque des exceptions sont susceptibles de se produire fréquemment (c'est-à-dire lorsque le « résultat » est susceptible d'être Aucun dans ce cas).

Conclusion

Le choix dépend de la fréquence attendue des exceptions. Pour les exceptions peu fréquentes, « essayer »/« sauf » est plus rapide et suit le principe EAFP. Sinon, « if » est plus prudent pour éviter une gestion inutile des exceptions.

Considérations supplémentaires

  • La documentation Python recommande d'utiliser « try »/« except » pour contrôle de flux lorsque les exceptions sont exceptionnelles.
  • Les instructions « if » entraînent toujours un coût, tandis que la configuration « try »/« except » est presque gratuite, mais la gestion des exceptions est plus coûteuse.
  • L'EAFP le style est considéré comme « pythonique » et encourage un code propre et concis.

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