Python Language `et` et` ou` ne sont pas garantis pour renvoyer un booléen


Exemple

Lorsque vous utilisez or , il renverra la première valeur de l'expression si elle est vraie, sinon elle retournera aveuglément la deuxième valeur. Ie or est équivalent à:

def or_(a, b):
    if a:
        return a
    else:
        return b

Pour and , il retournera sa première valeur si elle est fausse, sinon elle retourne la dernière valeur:

def and_(a, b):
    if not a:
        return a
    else:
        return b