Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > fr.comp.lang.python > #3232
| From | Benoit Izac <use.reply.to@INVALID.ADDRESS> |
|---|---|
| Newsgroups | fr.comp.lang.python |
| Subject | Re: afficher la définition d'une fonction à partir de la console |
| Date | 2019-09-03 21:28 +0200 |
| Message-ID | <87r24xw56i.fsf@izac.org> (permalink) |
| References | <5d6c1c0e$0$3541$426a74cc@news.free.fr> <5d6cd4fc$0$20318$426a74cc@news.free.fr> <5d6e0fbd$0$3528$426a74cc@news.free.fr> |
Bonjour,
Le 03/09/2019 à 09:01, Fabrice a écrit dans le message
<5d6e0fbd$0$3528$426a74cc@news.free.fr> :
> et parfois, mes élèves s'emmêlent les pinceaux et croient utiliser une
> fonction alors que c'en est une autre... surtout avec jupyter qui
> permet de réexécuter les cadres de code passés.
>
> Du coup, lorsqu'ils m'appellent au secours, ils ont parfois un
> "programme" qui semblent bon mais qui ne marche pas car l'erreur est
> dans une fonction qu'ils appellent et qui n'est pas celle qu'ils
> croient.
>
> Et quand ils me disent : "Mais si m'sieur, j'ai bien écrit ma
> fonction" en me montrant le cadre de code qu'ils ont changé mais pas
> exécuté, j'aimerai leur montrer ce que Python connait vraiment.
Le problème c'est que, bien que Python soit interprété, il exécute du
bytecode. Donc le seul moyen est de désassembler le bytecode mais c'est
plus compliqué à lire car tu obtiens un genre d'assembleur. Sur ta
fonction « f » :
>>> def f(x):
... if x<0: return -1
... else : return 1
...
>>> import dis
>>> dis.dis(f)
2 0 LOAD_FAST 0 (x)
2 LOAD_CONST 1 (0)
4 COMPARE_OP 0 (<)
6 POP_JUMP_IF_FALSE 12
8 LOAD_CONST 2 (-1)
10 RETURN_VALUE
3 >> 12 LOAD_CONST 3 (1)
14 RETURN_VALUE
16 LOAD_CONST 0 (None)
18 RETURN_VALUE
Voir <https://docs.python.org/3/library/dis.html> pour plus de détail.
--
Benoit Izac
Back to fr.comp.lang.python | Previous | Next — Previous in thread | Next in thread | Find similar
afficher la définition d'une fonction à partir de la console Fabrice <professeur.leclercq@gmail.com> - 2019-09-01 21:29 +0200
Re: afficher la définition d'une fonction à partir de la console yves <yves@free.invalid> - 2019-09-02 08:38 +0000
Re: afficher la définition d'une fonction à partir de la console Fabrice <professeur.leclercq@gmail.com> - 2019-09-03 09:01 +0200
Re: afficher la définition d'une fonction à partir de la console Becaree <pierrelouis.chevallier60@gmail.com> - 2019-09-03 11:56 -0700
Re: afficher la définition d'une fonction à partir de la console Benoit Izac <use.reply.to@INVALID.ADDRESS> - 2019-09-03 21:28 +0200
Re: afficher la définition d'une fonction à partir de la console Nicolas <nicolasp@aaton.com> - 2019-09-06 08:43 +0200
Re: afficher la définition d'une fonction à partir de la console Benoit Izac <use.reply.to@INVALID.ADDRESS> - 2019-09-06 19:25 +0200
Re: afficher la définition d'une fonction à partir de la console Fabrice <professeur.leclercq@gmail.com> - 2019-09-07 18:56 +0200
Re: afficher la définition d'une fonction à partir de la console Nicolas <nicolasp@aaton.com> - 2019-09-09 08:32 +0200
Re: afficher la définition d'une fonction à partir de la console Nicolas <nicolasp@aaton.com> - 2019-09-09 08:32 +0200
Re: afficher la définition d'une fonction à partir de la console Benoit Izac <use.reply.to@INVALID.ADDRESS> - 2019-09-09 19:06 +0200
csiph-web