Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > fr.comp.lang.python > #3232

Re: afficher la définition d'une fonction à partir de la console

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>

Show all headers | View raw


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 | NextPrevious in thread | Next in thread | Find similar


Thread

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