• [^] # Expressions conditionnelles

    Posté par . En réponse à la dépêche PyQt v4 et Python 2.5 beta 1. Évalué à 2.

    "Ajout des expressions conditionnelles :
    >>> import os
    >>> a = "ERROR" if os.system("ls") != 0 else "OK"
    >>> print a
    OK
    "

    Cet exemple est mauvais car les expressions conditionnelles ont été conçues pour être le plus souvent comme suit :

    contents = ((doc + '\n') if doc else '')

    C'est à dire :
    "Le cas le plus probable est 'doc est vrai' et dans ce cas, contents = ((doc + '\n') . Execptionnllement , ce sera faux et on exécutera ce qu'il y a après le else."

    Dans l'esprit, c'est donc plutôt:

    "OK" if os.system("ls") else a="ERROR" en supposant qu'on n'a peu de chance que ls ne fonctionne pas.

    C'est façon de voir justifie cette syntaxe qui peut sembler assez étrange.