python python-2.7

Sintaxis de Python ''If not''



python-2.7 (1)

Esta pregunta ya tiene una respuesta aquí:

Estoy un poco confundido acerca de cómo / por qué tantos desarrolladores de Python usan, if not en sus declaraciones condicionales.

por ejemplo, digamos que tenemos una función,

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

Pero, ¿por qué seguir así? Quiero decir, ¿no estaría haciendo if bar != None o if bar is not None sería más explícito? ¿Qué hace if not intentas decir?


Sí, if bar is not None es más explícita y, por lo tanto, mejor, suponiendo que es lo que realmente desea. Ese no es siempre el caso, hay diferencias sutiles: if not bar: se ejecutará si la bar es cualquier tipo de contenedor vacío o cero, o False . Muchas personas usan not bar que no significan que realmente no significan que bar is not None .