Soll ich testen if
, ob etwas gültig ist oder nur try
, um es zu tun und die Ausnahme abzufangen?
- Gibt es eine solide Dokumentation, die besagt, dass ein Weg bevorzugt wird?
- Ist ein Weg mehr pythonisch ?
Zum Beispiel sollte ich:
if len(my_list) >= 4:
x = my_list[3]
else:
x = 'NO_ABC'
Oder:
try:
x = my_list[3]
except IndexError:
x = 'NO_ABC'
Einige Gedanken ...
PEP 20 sagt:
Fehler sollten niemals stillschweigend vergehen.
Sofern nicht ausdrücklich zum Schweigen gebracht.
Sollte die Verwendung von a try
anstelle von a if
als stillschweigender Fehler interpretiert werden? Und wenn ja, bringen Sie es explizit zum Schweigen, indem Sie es auf diese Weise verwenden, sodass es in Ordnung ist?
Ich beziehe mich nicht auf Situationen, in denen Sie Dinge nur auf eine Weise tun können. beispielsweise:
try:
import foo
except ImportError:
import baz
if index in mylist
testet, ob der Index ein Element der Mylist ist, kein möglicher Index. Sie würdenif index < len(mylist)
stattdessen wollen .