9.2 Comment ça marche

Quelques modifications ont été faites à l'interpréteur.

Les fonctions de trace ont trois arguments: instance_activation, evenementet argument. instance_activation est l'instance d'activation courante dans la pile. evenement est une chaîne:'call', 'line', 'return' ou 'exception'. arg dépend du type d'événement.

La fonctin de trace globale est appelée (avec evenement valant 'call') lorsqu'une nouvelle portée est introduite; elle doit retourner une référence à la fonction de trace locale de cette portée, ou None si la portée ne doit pas être tracée.

La fonction de trace locale doit retourner une référence à elle-même (ou à une autre fonction pour poursuivre la trace de cette portée), ou Nonepour désactiver la trace de cette portée.

Les méthodes d'instance sont des fonctions de trace acceptées (et extrêmement utiles).

Les événements signifient:

'call'
Une fonction est appelée (ou un autre bloc est introduit). La fonction de trace globale est appelée; argument est la liste des arguments passés à la fonction; la valeur de retour détermine la fonction de trace locale.

'line'
L'interpréteur est sur le point d'exécuter une nouvelle ligne de code (parfois plusieurs événements de type 'line' surviennent dans une même ligne de source). La fonction de trace locale est appelée; argumentest None; la valeur de retour spécifie la nouvelle fonction de trace locale.

'return'
Une fonction (ou un autre bloc de code) est sur le point de retourner. La fonction de trace locale est appelée; argument est la valuer qui sera retournée. La valeur de retour de la fonction de trace est ignorée.

'exception'
Une exception est survenue. La fonction de trace locale est appelée; argument est un triplet (exception, valeur, traceback); la valeur de retour spécifie la nouvelle fonction de trace locale.

Notez que lorsqu'une exception est propagée à travers la chaîne des appelants, un événement de type 'exception' est généré à chaque fois.

Pour plus d'informations sur les objets code et instance d'activation, voir le Python Reference Manual.