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'
>>>...
- Accédez à tous les contenus de Connect en illimité
- Découvrez des listes de lecture et des contenus Premium
- Consultez les nouveaux articles en avant-première