Path: csiph.com!3.eu.feeder.erje.net!feeder.erje.net!fdn.fr!news.ortolo.eu!news.izac.org!reader From: Benoit Izac Newsgroups: fr.comp.lang.python Subject: Re: afficher la =?iso-8859-1?Q?d=E9finition?= d'une fonction =?iso-8859-1?Q?=E0?= partir de la console Date: Fri, 06 Sep 2019 19:25:41 +0200 Message-ID: <87tv9puyju.fsf@izac.org> References: <5d6c1c0e$0$3541$426a74cc@news.free.fr> <5d6cd4fc$0$20318$426a74cc@news.free.fr> <5d6e0fbd$0$3528$426a74cc@news.free.fr> <5d71fffd$0$15180$426a74cc@news.free.fr> Reply-To: benoit.izac@free.fr Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit Injection-Info: keg.izac.org; logging-data="27263"; mail-complaints-to="usenet@izac.org" Xref: csiph.com fr.comp.lang.python:3241 Bonjour, Le 06/09/2019 à 08:43, Nicolas a écrit dans le message <5d71fffd$0$15180$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. > > D'après cette réponse > (https://stackoverflow.com/questions/427453/how-can-i-get-the-source-code-of-a-python-function/427533#427533), > il semblerait que les lignes suivantes fonctionnent dans jupyter : > > import inspect > print(inspect.getsource(fonction)) > > A vérifier... > Je n'utilise pas jupyter, donc, je ne peux pas vérifier ;) Ce n'est pas spécifique à Jupyter et tu as lu un peu vite : | If the function is from a source file available on the filesystem, | [...] | But I believe that if the function is compiled from a string, stream | or imported from a compiled file, then you cannot retrieve its source | code. Lorsque le code est tapé dans la console, le fichier source n'est pas disponible donc ça ne fonctionne pas. Ça ne marche que ce que tu vas trouver dans /usr/lib/pythonX.X/. -- Benoit Izac