Je suis un peu confus quant à la raison/pourquoi tant de python développeurs utilisent if not
dans leurs instructions conditionnelles.
par exemple, disons que nous avions une fonction,
def foo(bar = None):
if not bar:
bar = 2
Mais pourquoi faire comme ça? Je veux dire, est-ce que faire if bar != None
ou if bar is not None
ne serait pas plus explicite? Qu'est-ce que if not
essaie de dire?
Oui, if bar is not None
est plus explicite, et donc meilleur, en supposant que c’est bien ce que vous voulez. Ce n'est pas toujours le cas, il y a des différences subtiles: if not bar:
sera exécuté si bar
est un type quelconque de conteneur zéro ou vide, ou False
. Beaucoup de gens utilisent not bar
où ils font vraiment signifie bar is not None
.