Category Archives : Programmation


Valeurs et références en Python 21

Il y a plusieurs manière de passer une variable en informatique: par valeur ou par référence. Et dans les langages bas niveau comme le C, on se pose la question: “passe-t-on la valeur ? un pointer ? un pointer vers un pointer ?”

En Python ce n’est pas la question puisque tout se passe référence. Tous les objets. Dans tous les cas.

La question est donc plutôt: “ça veut dire quoi passer par référence ?”

Photo d'un pot de Bordeau Chesnel

La nonne annone le mot "None"

id(), None et bidouilleries mémoire en python. 20

Mon maître-ninja python, entre deux riffs sur sa contrebasse électrique, m’avait un jour dit : “il ne faut pas écrire if a == None:, mais if a is None:”. Il m’avait ensuite donné une justification pertinente, que je n’ai pas retenue, car j’étais en train de penser à des nichons. Puis il avait conclu par “on n’est pas égal au vide. On EST le vide.”

Rien que pour vous, ainsi que pour m’auto-déculpabiliser de penser souvent à des nichons, j’ai parcouru l’internet entier à dos de souris et j’ai retrouvé la justification. Mais avant de vous la livrer, quelques explications préliminaires.


Photo de cookies en forme de poneys

Cookies, sessions et redirections dans un middleware Django

En Django les sessions utilisent des cookies, et il n’y a pas de fallback possible sur un SESSION_ID passé dans l’URL comme le fait par exemple PHP (il y a des apps pour ça, mais la pratique est considérée peu sécurisée de toute façon).

Or, comme HTTP est stateless, les cookies sont échangés en permanence, on les reçoit par la requête, et on les envoit avec les réponses. Ajoutez à cela qu’un client peut choisir de désactiver le support de cookie, et vous avez là un merveilleux casse-tête.