Python Language `e` e` or` non sono garantiti per restituire un valore booleano


Esempio

Quando usi or , restituirà il primo valore nell'espressione se è vero, altrimenti restituirà ciecamente il secondo valore. Vale a dire or è equivalente a:

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

Per and , restituirà il suo primo valore se è falso, altrimenti restituisce l'ultimo valore:

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