fsHhshhhshhhHHh tsssk tssk fFSShhhsh

Alors voila. Y’a bien quoi, 3 ans ? 4 ans ? que moult lutins me chantaient les louanges de python, mais flemme, manque de proj et de temps aidant, je snobais le langage au serpent, tout juste capable de gentiment hacker quelques codes existants, rien d’excitant. Et puis arrive ce petit proj au boulot, un truc sympa, pas bien méchant, qui me ferait manipuler des IO, des connexions interactives, un proj avec un potentiel futur relativement interessant. Du coup, moi qui aime me coller dans la merde, je dis fièrement “ouais allez en python”. Coup’d’pression coup’d’pression. Evidemment, je commence par Dive Into Python, que j’accroche pas, mais alors pas_du_tout. Puis je m’attaque au classique Apprendre à programmer avec python. Juste enorme, excellente ressource qui met les idées bien au clair, ce fût ma révélation. J’ai poursuivi en achetant ce bouquin, et là, je dois marcher en me penchant quand je sors du metro et que je finis la lecture de 3/4 pages. Programmation reseau, Twisted, multithreading et autres sujets plus kiffants les uns que les autres. Là dessus arrivent les délicieux conseils des experimentés pythonneurs tahorg, dzen, yota, mial, anhj, Klyr et j’en passe, et je finis par claquer un code pas-si-dégueu pour un coup d’essai. Allez, je résiste pas au plaisir de paster la dernière astuce issue du canal, une boucle qui construit des noms de fonctions en addictionnant des strings puis les rend callable, une tuerie “classique” :

L’astuce reside dans le paramètre modules["__main__"], qui informe l’incroyable getattr que l’objet auquel juxtaposer la fonction construite n’est autre que le code courant.

Pour finir, un petit tour de passe-passe avec getattr()

Sans déconner…