Maison > Article > développement back-end > Quand devriez-vous utiliser « try » et quand devriez-vous utiliser « if » en Python ?
Décider entre les constructions « essayer » et « si » en Python
Lors du test si une variable a une valeur, choisir entre « essayer » ou « si » peuvent être un sujet de débat. Examinons la justification de l'utilisation de chaque approche.
EAFP (plus facile de demander pardon que la permission) contre LBYL (Look Before You Leap)
Python encourage l'EAFP sur LBYL. EAFP consiste à essayer une opération et à détecter les exceptions si elles se produisent. LBYL, quant à lui, implique de vérifier les conditions au préalable avant de tenter l'opération.
Considérations sur l'efficacité et la lisibilité
L'aspect efficacité dépend de la fréquence attendue des exceptions. Si les exceptions sont rares, la surcharge des blocs try/sauf peut être annulée par la vitesse des instructions if. Cependant, si les exceptions sont plus courantes, try/sauf peut être plus rapide car il évite la surcharge des enregistrements de condition dans les instructions if.
Exemple
Considérez le code suivant qui vérifie si une fonction renvoie une liste :
result = function() if result: for r in result: # Process items
result = function() try: for r in result: # Process items except TypeError: pass
Si 'result' est susceptible d'être une liste la plupart du temps, l'approche try/sauf est plus efficace. Cependant, si 'result' est souvent Aucun, l'instruction if est préférable.
Mesures du temps
Les mesures du temps montrent que try/sauf est plus rapide lorsque les exceptions sont vraiment exceptionnelles , tandis que les déclarations if sont plus rapides lorsque les conditions sont généralement remplies.
Conclusion
La décision entre « essayer » et « si » dépend de :
En général, EAFP (essayer/sauf) peut être un système plus « pythonique » " approche, surtout lorsque les exceptions sont rares. Cependant, LBYL (instructions if) peut être plus appropriée lorsque les exceptions sont courantes.
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!