XD blog

blog page

operators


2013-04-30 Règles de priorité en Python

A force de coder avec un langage de script qui autorise presque tout, on devient paresseux. On perd du temps pour finalement redécouvrir quelques règles de priorité. J'ai écrit la fonction f1 en pensant qu'elle se comporterait comme la fonction f2.

def f1 (b) : return 1,1 if b else 0,0
def f2 (b) : return (1,1) if b else (0,0)

print ("f1", f1(False), "f2", f2(False))  # f1 (1, 0, 0) f2 (0, 0)
print ("f1", f1(True),  "f2", f2(True))   # f1 (1, 1, 0) f2 (1, 1)
On omet les parenthèses la plupart du temps en ce qui concerne les tuples en Python. Ces conversions implicites ont quelques effets secondaires. Je tâcherai de m'en souvenir.


Xavier Dupré