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