Ist es eine schlechte Übung, das folgende Format zu verwenden, wenn my_var
None sein kann?Ist es sicher, sich in if-Anweisungen auf die Bedingungsevaluierungsreihenfolge zu verlassen?
if my_var and 'something' in my_var:
#do something
Das Problem ist, dass 'something' in my_var
eine Typeerror werfen, wenn my_var Keine ist.
Oder soll ich:
if my_var:
if 'something' in my_var:
#do something
oder
try:
if 'something' in my_var:
#do something
except TypeError:
pass
die Frage neu zu formulieren, welche der oben genannten ist die beste Praxis in Python (falls vorhanden)?
Alternativen sind willkommen!
Wenn ich Code wie der zweite sehe, nehme ich an, der Codierer hat nicht verstanden, wie Kurzschlussauswertung funktioniert. – Dana
-1: Kein Zitat aus der Dokumentation: http://docs.python.org/library/stdtypes.html#boolean-operations-and-o-not –
@cfi: Da ich meine Stimme ändern kann, nachdem sich die Antwort ändert, Ich bin unklar, was das Problem ist. –