Wann sollte „try“ vs. „if“ für Werttests in Python verwendet werden?
In Python beim Testen, ob eine Variable einen hat Wenn Sie einen Wert angeben, besteht häufig die Wahl zwischen der Verwendung von „try“ oder „if“. Diese Frage soll eine Anleitung zum Grundprinzip jedes Konstrukts geben.
Stellen Sie sich eine Funktion vor, die entweder eine Liste oder keinen Wert zurückgibt. Um das Ergebnis vor der Verarbeitung zu überprüfen, haben wir zwei Möglichkeiten:
result = function(); if (result): for r in result: # process items
oder
result = function(); try: for r in result: # Process items except TypeError: pass;
Begründung für 'versuchen'/'ausnehmen'
Der „try“/„exclusive“-Ansatz setzt das Vorhandensein eines Werts innerhalb von „result“ voraus und behandelt potenzielle Ausnahmen (z. B. TypeError, wenn die Funktion gibt „Keine“ zurück). Dies folgt dem EAFP-Prinzip (Easier to Ask for Forgiveness than Permission), das es vorzieht, Ausnahmen dann abzufangen, wenn sie auftreten, anstatt vorher nach ihnen zu suchen. Es ist effizienter in Szenarien, in denen Ausnahmen ungewöhnlich sind.
Begründung für „Wenn“
Der „Wenn“-Ansatz prüft explizit, ob ein Wert vorhanden ist, bevor er versucht, dies zu tun es verarbeiten. Obwohl es langsamer sein kann, wird es empfohlen, wenn Ausnahmen voraussichtlich häufig auftreten (d. h. wenn „Ergebnis“ in diesem Fall wahrscheinlich „Keine“ lautet).
Schlussfolgerung
Die Auswahl hängt von der erwarteten Häufigkeit von Ausnahmen ab. Bei seltenen Ausnahmen ist „try“/„exclusive“ schneller und folgt dem EAFP-Prinzip. Andernfalls ist „if“ sinnvoller, um unnötige Ausnahmebehandlung zu vermeiden.
Zusätzliche Überlegungen
Das obige ist der detaillierte Inhalt vonWann sollte „try' vs. „if' für den Umgang mit potenziellen None-Werten in Python verwendet werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!