Comprendre comment fonctionne Python pour optimiser son code

Magazine
Marque
GNU/Linux Magazine
Numéro
158
Mois de parution
mars 2013
Domaines


Résumé
Python est un langage interprété. Il se compile pour générer du bytecode qui sera exécuté par la machine virtuelle. L'idée de cet article est de faire une introduction sur le fonctionnement de ce bytecode. On ne parle ici que de CPython 3.x, le fonctionnement sous CPython 2.x étant sensiblement différent et celui pour PyPy, IronPython ou encore Jython étant réellement différent.

1. Objets code

1.1 Tout est objet

En Python, tout est objet. Si les instances sont des objets, les classes sont également des objets, de même que les fonctions et les méthodes. Ceci est également vrai pour le code Python lui-même :

>>> def classic_function(name):

...     print('Hello %s' % name)

...

>>> code_object = classic_function.__code__

Cet objet est une instance de type code :

>>> type(code_object)

<class 'code'>

>>> code_object

<code object classic_function at 0x7f6c3bcb59c0, file "<stdin>", line 1>

1.2 Détail de l'objet code

Cet objet dispose d'un certain nombre d'attributs utiles, préfixés par co_ :

>>> dir(code_object)

[[…], 'co_argcount', 'co_cellvars', 'co_code', 'co_consts', 'co_filename', 'co_firstlineno', 'co_flags', 'co_freevars', 'co_kwonlyargcount', 'co_lnotab', 'co_name', 'co_names', 'co_nlocals', 'co_stacksize', 'co_varnames']

Parmi eux, on distingue ceux qui permettent de déterminer la signature de la fonction :

>>> code_object.co_name

'classic_function'

>>>...

Cet article est réservé aux abonnés. Il vous reste 96% à découvrir.
à partir de 21,65€ HT/mois/lecteur pour un accès 5 lecteurs à toute la plateforme
J'en profite


Articles qui pourraient vous intéresser...

Utiliser Visual Studio Code pour coder en Python

Magazine
Marque
GNU/Linux Magazine
Numéro
243
Mois de parution
décembre 2020
Domaines
Résumé

Comme Batman a Robin, Rocket Raccoon a Groot, le développeur a l’éditeur de code. Sans son plus fidèle acolyte, impossible d’écrire la moindre ligne de code... d’où l’importance d’être toujours à la recherche de l’outil le plus efficace qui soit, quitte à délaisser un vieux compagnon de route...

Générez la documentation technique de vos projets Godot

Magazine
Marque
GNU/Linux Magazine
Numéro
243
Mois de parution
décembre 2020
Domaines
Résumé

Découvrons comment utiliser GDScript Docs Maker pour générer automatiquement la documentation de vos projets Godot. Nous allons voir dans cet article que l’on peut simplement, à partir de notre code et de ses commentaires, avoir une documentation toujours à jour.

Implémentation du calcul symbolique et de la dérivation en Java

Magazine
Marque
GNU/Linux Magazine
Numéro
243
Mois de parution
décembre 2020
Domaines
Résumé

Les logiciels de calcul symbolique sont relativement abondants. Pour les curieux ou ceux qui voudraient intégrer ce type de fonctionnalités dans leurs propres programmes, nous allons essayer de lever une partie des mystères des théories et des problèmes qui se cachent derrière la création de ces systèmes.