Lorsque l'on importe un module le corps du module
constitue son initialisation.
Mais existe-t-il une fonction spécifique, éventuellement définie
dans chaque module, qui est exécutée lorsque l'on importe
ce module ? (je pensais que la foncion en question était
"initnomdumodule" ...)
Merci de vos réponses, remarques et de votre indulgence si je n'ai pas
été assez clair.
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
Wilk
"Olivier Ravard" writes:
Bonjour à tous,
Lorsque l'on importe un module le corps du module constitue son initialisation. Mais existe-t-il une fonction spécifique, éventuellement définie dans chaque module, qui est exécutée lorsque l'on importe ce module ? (je pensais que la foncion en question était "initnomdumodule" ...)
Merci de vos réponses, remarques et de votre indulgence si je n'ai pas été assez clair.
Le module va être exécuté, il suffit qu'il n'y ait aucune instruction pour que rien ne se passe...
si monmodule.py contient
a = 5 print "toto"
lorsque tu va faire import monmodule il va afficher "toto" uniquement la première fois.
si monmodule.py contient
a = 5 def mafonction(): print "toto"
tu peux importer monmodule, il ne va rien exécuter, juste définir a et mafonction.
Lorsque l'on importe un module le corps du module
constitue son initialisation.
Mais existe-t-il une fonction spécifique, éventuellement définie
dans chaque module, qui est exécutée lorsque l'on importe
ce module ? (je pensais que la foncion en question était
"initnomdumodule" ...)
Merci de vos réponses, remarques et de votre indulgence si je n'ai pas
été assez clair.
Le module va être exécuté, il suffit qu'il n'y ait aucune instruction
pour que rien ne se passe...
si monmodule.py contient
a = 5
print "toto"
lorsque tu va faire import monmodule il va afficher "toto" uniquement la
première fois.
si monmodule.py contient
a = 5
def mafonction():
print "toto"
tu peux importer monmodule, il ne va rien exécuter, juste définir a et
mafonction.
Lorsque l'on importe un module le corps du module constitue son initialisation. Mais existe-t-il une fonction spécifique, éventuellement définie dans chaque module, qui est exécutée lorsque l'on importe ce module ? (je pensais que la foncion en question était "initnomdumodule" ...)
Merci de vos réponses, remarques et de votre indulgence si je n'ai pas été assez clair.
Le module va être exécuté, il suffit qu'il n'y ait aucune instruction pour que rien ne se passe...
si monmodule.py contient
a = 5 print "toto"
lorsque tu va faire import monmodule il va afficher "toto" uniquement la première fois.
si monmodule.py contient
a = 5 def mafonction(): print "toto"
tu peux importer monmodule, il ne va rien exécuter, juste définir a et mafonction.
-- William - http://flibuste.net
Olivier Ravard
"Wilk" a écrit dans le message de news:
"Olivier Ravard" writes:
Bonjour à tous,
Lorsque l'on importe un module le corps du module constitue son initialisation. Mais existe-t-il une fonction spécifique, éventuellement définie dans chaque module, qui est exécutée lorsque l'on importe ce module ? (je pensais que la foncion en question était "initnomdumodule" ...)
Merci de vos réponses, remarques et de votre indulgence si je n'ai pas été assez clair.
Le module va être exécuté, il suffit qu'il n'y ait aucune instruction pour que rien ne se passe...
si monmodule.py contient
a = 5 print "toto"
lorsque tu va faire import monmodule il va afficher "toto" uniquement la première fois.
si monmodule.py contient
a = 5 def mafonction(): print "toto"
tu peux importer monmodule, il ne va rien exécuter, juste définir a et mafonction.
Merci de ta réponse. En fait, j'avais bien compris tout ça. C'est ce que signifiait ma phrase : "Lorsque l'on importe un module le corps du module constitue son initialisation" En réalité mon problème est que mon module est écrit en C++ et je veux qu'une fonction s'exécute automatiquement lorsque l'on importe le module.
-- William - http://flibuste.net
"Wilk" <wilk-ml@flibuste.net> a écrit dans le message de news:
874qh5srzk.fsf@chat.blakie.riol...
Lorsque l'on importe un module le corps du module
constitue son initialisation.
Mais existe-t-il une fonction spécifique, éventuellement définie
dans chaque module, qui est exécutée lorsque l'on importe
ce module ? (je pensais que la foncion en question était
"initnomdumodule" ...)
Merci de vos réponses, remarques et de votre indulgence si je n'ai pas
été assez clair.
Le module va être exécuté, il suffit qu'il n'y ait aucune instruction
pour que rien ne se passe...
si monmodule.py contient
a = 5
print "toto"
lorsque tu va faire import monmodule il va afficher "toto" uniquement la
première fois.
si monmodule.py contient
a = 5
def mafonction():
print "toto"
tu peux importer monmodule, il ne va rien exécuter, juste définir a et
mafonction.
Merci de ta réponse. En fait, j'avais bien compris tout ça. C'est ce que
signifiait
ma phrase : "Lorsque l'on importe un module le corps du module constitue son
initialisation"
En réalité mon problème est que mon module est écrit en C++ et je veux
qu'une fonction
s'exécute automatiquement lorsque l'on importe le module.
Lorsque l'on importe un module le corps du module constitue son initialisation. Mais existe-t-il une fonction spécifique, éventuellement définie dans chaque module, qui est exécutée lorsque l'on importe ce module ? (je pensais que la foncion en question était "initnomdumodule" ...)
Merci de vos réponses, remarques et de votre indulgence si je n'ai pas été assez clair.
Le module va être exécuté, il suffit qu'il n'y ait aucune instruction pour que rien ne se passe...
si monmodule.py contient
a = 5 print "toto"
lorsque tu va faire import monmodule il va afficher "toto" uniquement la première fois.
si monmodule.py contient
a = 5 def mafonction(): print "toto"
tu peux importer monmodule, il ne va rien exécuter, juste définir a et mafonction.
Merci de ta réponse. En fait, j'avais bien compris tout ça. C'est ce que signifiait ma phrase : "Lorsque l'on importe un module le corps du module constitue son initialisation" En réalité mon problème est que mon module est écrit en C++ et je veux qu'une fonction s'exécute automatiquement lorsque l'on importe le module.
-- William - http://flibuste.net
F. Petitjean
"Wilk" a écrit dans le message de news:
"Olivier Ravard" writes:
Bonjour à tous,
Lorsque l'on importe un module le corps du module constitue son initialisation. Mais existe-t-il une fonction spécifique, éventuellement définie dans chaque module, qui est exécutée lorsque l'on importe ce module ? (je pensais que la foncion en question était "initnomdumodule" ...)
Le module va être exécuté, il suffit qu'il n'y ait aucune instruction pour que rien ne se passe...
si monmodule.py contient
a = 5 print "toto"
lorsque tu va faire import monmodule il va afficher "toto" uniquement la première fois.
si monmodule.py contient
a = 5 def mafonction(): print "toto"
tu peux importer monmodule, il ne va rien exécuter, juste définir a et mafonction.
Merci de ta réponse. En fait, j'avais bien compris tout ça. C'est ce que signifiait ma phrase : "Lorsque l'on importe un module le corps du module constitue son initialisation" En réalité mon problème est que mon module est écrit en C++ et je veux qu'une fonction s'exécute automatiquement lorsque l'on importe le module. Il me semble qu'il suffit de mettre l'appel de cette fonction au niveau
"module scope" c'est-à-dire bien cadré à gauche : result = initmodule(params) Attention ce ne sera, en principe, exécuté qu'au premier import.
Pour voir un exemple d'effet de bords lire this.py et exécuter
import this
-- William - http://flibuste.net
"Wilk" <wilk-ml@flibuste.net> a écrit dans le message de news:
874qh5srzk.fsf@chat.blakie.riol...
Lorsque l'on importe un module le corps du module
constitue son initialisation.
Mais existe-t-il une fonction spécifique, éventuellement définie
dans chaque module, qui est exécutée lorsque l'on importe
ce module ? (je pensais que la foncion en question était
"initnomdumodule" ...)
Le module va être exécuté, il suffit qu'il n'y ait aucune instruction
pour que rien ne se passe...
si monmodule.py contient
a = 5
print "toto"
lorsque tu va faire import monmodule il va afficher "toto" uniquement la
première fois.
si monmodule.py contient
a = 5
def mafonction():
print "toto"
tu peux importer monmodule, il ne va rien exécuter, juste définir a et
mafonction.
Merci de ta réponse. En fait, j'avais bien compris tout ça. C'est ce que
signifiait
ma phrase : "Lorsque l'on importe un module le corps du module constitue son
initialisation"
En réalité mon problème est que mon module est écrit en C++ et je veux
qu'une fonction
s'exécute automatiquement lorsque l'on importe le module.
Il me semble qu'il suffit de mettre l'appel de cette fonction au niveau
"module scope" c'est-à-dire bien cadré à gauche :
result = initmodule(params)
Attention ce ne sera, en principe, exécuté qu'au premier import.
Pour voir un exemple d'effet de bords lire this.py et exécuter
Lorsque l'on importe un module le corps du module constitue son initialisation. Mais existe-t-il une fonction spécifique, éventuellement définie dans chaque module, qui est exécutée lorsque l'on importe ce module ? (je pensais que la foncion en question était "initnomdumodule" ...)
Le module va être exécuté, il suffit qu'il n'y ait aucune instruction pour que rien ne se passe...
si monmodule.py contient
a = 5 print "toto"
lorsque tu va faire import monmodule il va afficher "toto" uniquement la première fois.
si monmodule.py contient
a = 5 def mafonction(): print "toto"
tu peux importer monmodule, il ne va rien exécuter, juste définir a et mafonction.
Merci de ta réponse. En fait, j'avais bien compris tout ça. C'est ce que signifiait ma phrase : "Lorsque l'on importe un module le corps du module constitue son initialisation" En réalité mon problème est que mon module est écrit en C++ et je veux qu'une fonction s'exécute automatiquement lorsque l'on importe le module. Il me semble qu'il suffit de mettre l'appel de cette fonction au niveau
"module scope" c'est-à-dire bien cadré à gauche : result = initmodule(params) Attention ce ne sera, en principe, exécuté qu'au premier import.
Pour voir un exemple d'effet de bords lire this.py et exécuter
import this
-- William - http://flibuste.net
Eric Brunel
Olivier Ravard wrote: [snip]
Merci de ta réponse. En fait, j'avais bien compris tout ça. C'est ce que signifiait ma phrase : "Lorsque l'on importe un module le corps du module constitue son initialisation" En réalité mon problème est que mon module est écrit en C++ et je veux qu'une fonction s'exécute automatiquement lorsque l'on importe le module.
C'est bien la fonction init<nom du module> qui est censée s'exécuter, mais vu le "name-mangling" C++, il est possible que l'interpréteur Python ne la trouve pas. Essaie de définir cette fonction en extern "C" {...}; ça devrait mieux marcher...
HTH -- - Eric Brunel <eric (underscore) brunel (at) despammed (dot) com> - PragmaDev : Real Time Software Development Tools - http://www.pragmadev.com
Olivier Ravard wrote:
[snip]
Merci de ta réponse. En fait, j'avais bien compris tout ça. C'est ce que
signifiait
ma phrase : "Lorsque l'on importe un module le corps du module constitue son
initialisation"
En réalité mon problème est que mon module est écrit en C++ et je veux
qu'une fonction
s'exécute automatiquement lorsque l'on importe le module.
C'est bien la fonction init<nom du module> qui est censée s'exécuter, mais vu le
"name-mangling" C++, il est possible que l'interpréteur Python ne la trouve pas.
Essaie de définir cette fonction en extern "C" {...}; ça devrait mieux marcher...
HTH
--
- Eric Brunel <eric (underscore) brunel (at) despammed (dot) com> -
PragmaDev : Real Time Software Development Tools - http://www.pragmadev.com
Merci de ta réponse. En fait, j'avais bien compris tout ça. C'est ce que signifiait ma phrase : "Lorsque l'on importe un module le corps du module constitue son initialisation" En réalité mon problème est que mon module est écrit en C++ et je veux qu'une fonction s'exécute automatiquement lorsque l'on importe le module.
C'est bien la fonction init<nom du module> qui est censée s'exécuter, mais vu le "name-mangling" C++, il est possible que l'interpréteur Python ne la trouve pas. Essaie de définir cette fonction en extern "C" {...}; ça devrait mieux marcher...
HTH -- - Eric Brunel <eric (underscore) brunel (at) despammed (dot) com> - PragmaDev : Real Time Software Development Tools - http://www.pragmadev.com