j'ai créé dans un objectif d'enseignement un module Python qui possède
une fonction DonnéeSuivante() qui porte bien son nom ;-)
Au premier import, mon programme fonctionne bien et je peux récupérer
les données au fur et à mesure à partir de la première donnée.
J'intègre mon programme dans un fichier jupyter. Tout se passe donc dans
une même session.
J'aimerai lorsque je passe à l'amélioration de mon programme qu'à
l'import du module celui-ci soit réellement ré-importé et que les
variables soient réinitialisées pour que la fonction DonnéeSuivante()
recommence à son comportement initial sans que l'utilisateur ait à s'en
soucier.
Comment faire ?
Cordialement,
Fabrice.
---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
https://www.avast.com/antivirus
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Pierre Maurette
Fabrice :
Bonjour, j'ai créé dans un objectif d'enseignement un module Python qui possède une fonction DonnéeSuivante() qui porte bien son nom ;-) Au premier import, mon programme fonctionne bien et je peux récupérer les données au fur et à mesure à partir de la première donnée. J'intègre mon programme dans un fichier jupyter. Tout se passe donc dans une même session. J'aimerai lorsque je passe à l'amélioration de mon programme qu'à l'import du module celui-ci soit réellement ré-importé et que les variables soient réinitialisées pour que la fonction DonnéeSuivante() recommence à son comportement initial sans que l'utilisateur ait à s'en soucier. Comment faire ?
Il me semble que je ne ferais pas de cette façon (mais j'ignore Jupyter, je préfère Jupyler). Pourquoi pas: import sys ... if 'nomdevotremodule' not in sys.modules: import nomdevotremodule else nomdevotremodule.moninit() (nomdevotremodule.moninit à écrire) Sinon vous avez peut-être reload(), qui devient imp.reload() puis importlib.reload() en Python 3 puis Python 3.4. Mais ça va dépendre de ce à quoi est lié le module, c'est typiquement le genre de truc qui fonctionne dans un premier temps puis se met à faire des trucs étranges après telle ou telle modification. Avec la première solution, je contrôle: je veux recharger le module pour qu'il redémarre une séquence (si j'ai bien compris), alors je lui dis simplement de redémarrer la séquence. -- Pierre Maurette
Fabrice :
Bonjour,
j'ai créé dans un objectif d'enseignement un module Python qui possède une
fonction DonnéeSuivante() qui porte bien son nom ;-)
Au premier import, mon programme fonctionne bien et je peux récupérer les
données au fur et à mesure à partir de la première donnée.
J'intègre mon programme dans un fichier jupyter. Tout se passe donc dans une
même session.
J'aimerai lorsque je passe à l'amélioration de mon programme qu'à l'import du
module celui-ci soit réellement ré-importé et que les variables soient
réinitialisées pour que la fonction DonnéeSuivante() recommence à son
comportement initial sans que l'utilisateur ait à s'en soucier.
Comment faire ?
Il me semble que je ne ferais pas de cette façon (mais j'ignore
Jupyter, je préfère Jupyler).
Pourquoi pas:
import sys
...
if 'nomdevotremodule' not in sys.modules:
import nomdevotremodule
else
nomdevotremodule.moninit()
(nomdevotremodule.moninit à écrire)
Sinon vous avez peut-être reload(), qui devient imp.reload() puis
importlib.reload() en Python 3 puis Python 3.4. Mais ça va dépendre de
ce à quoi est lié le module, c'est typiquement le genre de truc qui
fonctionne dans un premier temps puis se met à faire des trucs étranges
après telle ou telle modification.
Avec la première solution, je contrôle: je veux recharger le module
pour qu'il redémarre une séquence (si j'ai bien compris), alors je lui
dis simplement de redémarrer la séquence.
Bonjour, j'ai créé dans un objectif d'enseignement un module Python qui possède une fonction DonnéeSuivante() qui porte bien son nom ;-) Au premier import, mon programme fonctionne bien et je peux récupérer les données au fur et à mesure à partir de la première donnée. J'intègre mon programme dans un fichier jupyter. Tout se passe donc dans une même session. J'aimerai lorsque je passe à l'amélioration de mon programme qu'à l'import du module celui-ci soit réellement ré-importé et que les variables soient réinitialisées pour que la fonction DonnéeSuivante() recommence à son comportement initial sans que l'utilisateur ait à s'en soucier. Comment faire ?
Il me semble que je ne ferais pas de cette façon (mais j'ignore Jupyter, je préfère Jupyler). Pourquoi pas: import sys ... if 'nomdevotremodule' not in sys.modules: import nomdevotremodule else nomdevotremodule.moninit() (nomdevotremodule.moninit à écrire) Sinon vous avez peut-être reload(), qui devient imp.reload() puis importlib.reload() en Python 3 puis Python 3.4. Mais ça va dépendre de ce à quoi est lié le module, c'est typiquement le genre de truc qui fonctionne dans un premier temps puis se met à faire des trucs étranges après telle ou telle modification. Avec la première solution, je contrôle: je veux recharger le module pour qu'il redémarre une séquence (si j'ai bien compris), alors je lui dis simplement de redémarrer la séquence. -- Pierre Maurette
ou bien reload import importlib # python 3.4 ou plus importlib.reload(mymod) Le 12/06/2019 à 11:11, Fabrice a écrit :
Bonjour, j'ai créé dans un objectif d'enseignement un module Python qui possède une fonction DonnéeSuivante() qui porte bien son nom ;-) Au premier import, mon programme fonctionne bien et je peux récupérer les données au fur et à mesure à partir de la première donnée. J'intègre mon programme dans un fichier jupyter. Tout se passe donc dans une même session. J'aimerai lorsque je passe à l'amélioration de mon programme qu'à l'import du module celui-ci soit réellement ré-importé et que les variables soient réinitialisées pour que la fonction DonnéeSuivante() recommence à son comportement initial sans que l'utilisateur ait à s'en soucier. Comment faire ? Cordialement, Fabrice. --- L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast. https://www.avast.com/antivirus
import importlib # python 3.4 ou plus
importlib.reload(mymod)
Le 12/06/2019 à 11:11, Fabrice a écrit :
Bonjour,
j'ai créé dans un objectif d'enseignement un module Python qui possède
une fonction DonnéeSuivante() qui porte bien son nom ;-)
Au premier import, mon programme fonctionne bien et je peux récupérer
les données au fur et à mesure à partir de la première donnée.
J'intègre mon programme dans un fichier jupyter. Tout se passe donc dans
une même session.
J'aimerai lorsque je passe à l'amélioration de mon programme qu'à
l'import du module celui-ci soit réellement ré-importé et que les
variables soient réinitialisées pour que la fonction DonnéeSuivante()
recommence à son comportement initial sans que l'utilisateur ait à s'en
soucier.
Comment faire ?
Cordialement,
Fabrice.
---
L'absence de virus dans ce courrier électronique a été vérifiée par le
logiciel antivirus Avast.
https://www.avast.com/antivirus
ou bien reload import importlib # python 3.4 ou plus importlib.reload(mymod) Le 12/06/2019 à 11:11, Fabrice a écrit :
Bonjour, j'ai créé dans un objectif d'enseignement un module Python qui possède une fonction DonnéeSuivante() qui porte bien son nom ;-) Au premier import, mon programme fonctionne bien et je peux récupérer les données au fur et à mesure à partir de la première donnée. J'intègre mon programme dans un fichier jupyter. Tout se passe donc dans une même session. J'aimerai lorsque je passe à l'amélioration de mon programme qu'à l'import du module celui-ci soit réellement ré-importé et que les variables soient réinitialisées pour que la fonction DonnéeSuivante() recommence à son comportement initial sans que l'utilisateur ait à s'en soucier. Comment faire ? Cordialement, Fabrice. --- L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast. https://www.avast.com/antivirus
Pascal J. Bourguignon
Fabrice writes:
Bonjour, j'ai créé dans un objectif d'enseignement un module Python qui possède une fonction DonnéeSuivante() qui porte bien son nom ;-) Au premier import, mon programme fonctionne bien et je peux récupérer les données au fur et à mesure à partir de la première donnée. J'intègre mon programme dans un fichier jupyter. Tout se passe donc dans une même session. J'aimerai lorsque je passe à l'amélioration de mon programme qu'à l'import du module celui-ci soit réellement ré-importé et que les variables soient réinitialisées pour que la fonction DonnéeSuivante() recommence à son comportement initial sans que l'utilisateur ait à s'en soucier. Comment faire ?
En BASIC, il y avait READ pour lire la DATA suivante, et RESTORE, pour revenir à la première DATA. Il suffirait d'implémenter une fonction similaire à RESTORE, et à l'appeler dans le code d'initialisation du module. -- __Pascal J. Bourguignon__ http://www.informatimago.com
Fabrice <professeur.leclercq@gmail.com> writes:
Bonjour,
j'ai créé dans un objectif d'enseignement un module Python qui possède
une fonction DonnéeSuivante() qui porte bien son nom ;-)
Au premier import, mon programme fonctionne bien et je peux récupérer
les données au fur et à mesure à partir de la première donnée.
J'intègre mon programme dans un fichier jupyter. Tout se passe donc
dans une même session.
J'aimerai lorsque je passe à l'amélioration de mon programme qu'à
l'import du module celui-ci soit réellement ré-importé et que les
variables soient réinitialisées pour que la fonction DonnéeSuivante()
recommence à son comportement initial sans que l'utilisateur ait à
s'en soucier.
Comment faire ?
En BASIC, il y avait READ pour lire la DATA suivante, et RESTORE, pour
revenir à la première DATA.
Il suffirait d'implémenter une fonction similaire à RESTORE, et à
l'appeler dans le code d'initialisation du module.
--
__Pascal J. Bourguignon__
http://www.informatimago.com
Bonjour, j'ai créé dans un objectif d'enseignement un module Python qui possède une fonction DonnéeSuivante() qui porte bien son nom ;-) Au premier import, mon programme fonctionne bien et je peux récupérer les données au fur et à mesure à partir de la première donnée. J'intègre mon programme dans un fichier jupyter. Tout se passe donc dans une même session. J'aimerai lorsque je passe à l'amélioration de mon programme qu'à l'import du module celui-ci soit réellement ré-importé et que les variables soient réinitialisées pour que la fonction DonnéeSuivante() recommence à son comportement initial sans que l'utilisateur ait à s'en soucier. Comment faire ?
En BASIC, il y avait READ pour lire la DATA suivante, et RESTORE, pour revenir à la première DATA. Il suffirait d'implémenter une fonction similaire à RESTORE, et à l'appeler dans le code d'initialisation du module. -- __Pascal J. Bourguignon__ http://www.informatimago.com
Fabrice
Bonjour Pierre, Ast et Pascal, La solution me semble trop compliquée pour mon objectif (un cours sur le traitement des données, le but n'est pas d'apprendre Python). Je vais donc suivre les conseils de Pierre et Pascal et créer une fonction RemiseAZero(). Merci à tous les trois. cordialement, Fabrice. --- L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast. https://www.avast.com/antivirus
Bonjour Pierre, Ast et Pascal,
La solution me semble trop compliquée pour mon objectif (un cours sur le
traitement des données, le but n'est pas d'apprendre Python).
Je vais donc suivre les conseils de Pierre et Pascal et créer une
fonction RemiseAZero().
Merci à tous les trois.
cordialement,
Fabrice.
---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
https://www.avast.com/antivirus
Bonjour Pierre, Ast et Pascal, La solution me semble trop compliquée pour mon objectif (un cours sur le traitement des données, le but n'est pas d'apprendre Python). Je vais donc suivre les conseils de Pierre et Pascal et créer une fonction RemiseAZero(). Merci à tous les trois. cordialement, Fabrice. --- L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast. https://www.avast.com/antivirus
Nicolas
Bonjour, Plutôt qu'une fonction RemiseAZero(), je ferai une fonction Initialisation(). La fonction fait la même chose. Mais pour l'esprit, c'est, à mon avis, plus clair. La procédure est toujours la même : Initialisation, récupération de données. Nicolas Le 13/06/2019 à 11:46, Fabrice a écrit :
Bonjour Pierre, Ast et Pascal, La solution me semble trop compliquée pour mon objectif (un cours sur le traitement des données, le but n'est pas d'apprendre Python). Je vais donc suivre les conseils de Pierre et Pascal et créer une fonction RemiseAZero(). Merci à tous les trois. cordialement, Fabrice. --- L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast. https://www.avast.com/antivirus
Bonjour,
Plutôt qu'une fonction RemiseAZero(), je ferai une fonction
Initialisation().
La fonction fait la même chose.
Mais pour l'esprit, c'est, à mon avis, plus clair. La procédure est
toujours la même : Initialisation, récupération de données.
Nicolas
Le 13/06/2019 à 11:46, Fabrice a écrit :
Bonjour Pierre, Ast et Pascal,
La solution me semble trop compliquée pour mon objectif (un cours sur le
traitement des données, le but n'est pas d'apprendre Python).
Je vais donc suivre les conseils de Pierre et Pascal et créer une
fonction RemiseAZero().
Merci à tous les trois.
cordialement,
Fabrice.
---
L'absence de virus dans ce courrier électronique a été vérifiée par le
logiciel antivirus Avast.
https://www.avast.com/antivirus
Bonjour, Plutôt qu'une fonction RemiseAZero(), je ferai une fonction Initialisation(). La fonction fait la même chose. Mais pour l'esprit, c'est, à mon avis, plus clair. La procédure est toujours la même : Initialisation, récupération de données. Nicolas Le 13/06/2019 à 11:46, Fabrice a écrit :
Bonjour Pierre, Ast et Pascal, La solution me semble trop compliquée pour mon objectif (un cours sur le traitement des données, le but n'est pas d'apprendre Python). Je vais donc suivre les conseils de Pierre et Pascal et créer une fonction RemiseAZero(). Merci à tous les trois. cordialement, Fabrice. --- L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast. https://www.avast.com/antivirus
Fabrice
Le 13/06/2019 à 14:20, Nicolas a écrit :
Plutôt qu'une fonction RemiseAZero(), je ferai une fonction Initialisation(). La fonction fait la même chose. Mais pour l'esprit, c'est, à mon avis, plus clair.
Effectivement. cordialement, Fabrice --- L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast. https://www.avast.com/antivirus
Le 13/06/2019 à 14:20, Nicolas a écrit :
Plutôt qu'une fonction RemiseAZero(), je ferai une fonction
Initialisation().
La fonction fait la même chose.
Mais pour l'esprit, c'est, à mon avis, plus clair.
Effectivement.
cordialement,
Fabrice
---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
https://www.avast.com/antivirus
Plutôt qu'une fonction RemiseAZero(), je ferai une fonction Initialisation(). La fonction fait la même chose. Mais pour l'esprit, c'est, à mon avis, plus clair.
Effectivement. cordialement, Fabrice --- L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast. https://www.avast.com/antivirus