it-swarm.com.de

Python "Wenn nicht" -Syntax

Ich bin ein bisschen verwirrt darüber, wie/warum so viele python Entwickler if not in ihren bedingten Anweisungen verwenden.

nehmen wir zum Beispiel an, wir hatten eine Funktion,

def foo(bar = None):
    if not bar:
        bar = 2

Aber warum diesen Weg gehen? Ich meine, würde es nicht expliziter sein, if bar != None oder if bar is not None zu tun? Was versucht if not zu sagen?

138

Ja, if bar is not None ist expliziter und daher besser, vorausgesetzt, es ist tatsächlich das, was Sie wollen. Das ist nicht immer der Fall, es gibt subtile Unterschiede: if not bar: wird ausgeführt, wenn bar eine Art Null oder leerer Container oder False ist. Viele Leute benutzen not bar, wo sie wirklichbar is not None bedeuten.

176
user395760