3.22 new --- Création d'objets internes pendant l'exécution

Le module new permet une interface vers les fonctions de création d'objets de l'interpréteur. Cela sert principalement pour des fonctions de type marshal, quand un nouvel objet doit être créé ``par magie'' et pas en utilisant les fonctions ordinaires de création d'objets. Ce module procure un accès de bas niveau à l'interpréteur, il faut donc être prudent quand on l'utilise.

Le module new définit les fonctions suivantes:

instance(classe, dict)
Cette fonction crée une instance de class avec le dictionnaire dict sans appeler le constructeur __init__(). Notez qu'il n'est pas garanti que l'objet sera dans un état cohérent.

instancemethod(fonction, instance, classe)
Cette fonction retourne un objet méthode, lié à instance, ou non lié si instance vaut None. fonction doit être appelable, et instance doit être un objet instance ou bien None.

function(code, global[, nom[, defsarg]])
Retourne une fonction (Python) avec le code et l'espace de nom global donnés. Si nom est fourni, il doit être une chaîne de caractères ou None. Si c'est une chaîne de caractères, la fonction aura le nom donné, sinon le nom sera tiré de code.co_name. Si defsarg est fourni, il doit s'agir d'un tuple, qui servira à déterminer les valeurs par défaut des paramètres.

code(compteurarg, nlocaux, taillepile, indicateurs, chainecode, constantes, noms, nomvars, fichier, nom, numpremiereligne, lsanstab)
Cette fonction est une interface vers la fonction C PyCode_New().

module(nom)
Cette fonction retourne un nouvel objet module de nom nom. nom doit être une chaîne de caractères.

classobj(nom, classesbase, dict)
Cette fonction retourne un nouvel objet classe, de nom nom, dérivé de classesbase (qui doit être un tuple de classes) et avec l'espace de nom dict.