Valeur booléenne d'objets en Python

Comme nous le savons, Python a des valeurs booléennes pour les objets: Si une classe a un __len__ méthode, chaque instance de lui pour ce qui __len__() arrive à retourner la valeur 0 sera évalué comme un booléen False (par exemple, la liste vide).

En fait, chaque objet iterable, vide d'objet personnalisé est évaluée comme False si elle apparaît dans l'expression booléenne.

Maintenant, supposons que j'ai une classe foo avec l'attribut bar. Comment puis-je définir sa valeur de vérité, de sorte que, par exemple, il sera évalué à True if bar % 2 == 0 et False autrement?

Par exemple:

myfoo = foo()
myfoo.bar = 3
def a(myfoo):
    if foo:
        print "spam"
    else:
        print "eggs"

donc, a(myfoo) doit imprimer "eggs".

  • Voir aussi: __nonzero__()
InformationsquelleAutor ooboo | 2009-07-06