Python sous le capot — Chapitre 6 : Le système d’objet de Python

Avant-propos (du traducteur)

Ceci est la traduction du sixième article de Victor Skvortsov du 4 décembre 2020 : Python behind the scenes #6: how Python object system works.

Avant-propos

Comme nous l’avons vu dans les parties précédentes, l’exécution d’un programme Python est composé de deux grandes étapes :

Cela fait un moment que nous nous focalisons sur la seconde étape. Dans la quatrième partie, nous avons vu la boucle d’évaluation, l’endroit où le bytecode Python est exécuté. Et dans la cinquième partie, nous avons vu comment la VM exécute les instructions utilisées pour implémenter les variables. Ce que nous n’avons pas encore vu, c’est comment la VM fait réellement quelque chose. Nous avons mis cette question de coté car nous devions d’abord comprendre comment fonctionnaient les parties fondamentales du langage. Aujourd’hui, nous allons étudier le système d’objets Python.

Remarque : Dans cet article, je fais référence à CPython 3.9. Certains détails d’implémentation changeront certainement à mesure que CPython évolue. J’essayerais de suivre les changements importants et d’ajouter des notes de mise à jour.

Motivation

Voici un code Python extrêmement simple :

def f(x):
    return x + 7

Dernière mise à jour : ven. 08 janvier 2021