Python ‘Als niet’-syntaxis

Ik ben een beetje in de war over hoe/waarom zoveel Python-ontwikkelaars if notgebruiken in hun voorwaardelijke instructies.

laten we bijvoorbeeld zeggen dat we een functie hadden,

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

Maar waarom op deze manier gaan? Ik bedoel, zou if bar != Noneof if bar is not Noneniet explicieter zijn? Wat probeert if notte zeggen?


Antwoord 1, autoriteit 100%

Ja, if bar is not Noneis explicieter en dus beter, ervan uitgaande dat dit inderdaad is wat je wilt. Dat is niet altijd het geval, er zijn subtiele verschillen: if not bar:wordt uitgevoerd als bareen soort nul of lege container is, of False.
Veel mensen gebruiken not barwaar ze echtbedoelen dat bar is not Noneis.

Other episodes