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
Eric Brunel
On Fri, 4 Mar 2005 09:48:03 +0100, DAIREAUX Jean-Baptiste wrote:
j'ai bien comprit que __init__.py sert à marquer un paquet de module.
mais je ne vois pas ce que l'on peut mettre dedans? à quoi l'utilisé vous en générale ?
merci d'avance pour vos conseille avisé.
J.B.D.
Voilà un exemple typique d'utilisation que je fais du fichier __init__.py lorsque j'ai un module externe écrit en C et que je veux l'utiliser sur plusieurs plateformes:
monmodule/ __init__.py: import sys if sys.platform.startswith('linux'): from monmodule.linux_module.monmodule import * elif sys.platform.startswith('win'): from monmodule.windows_module.monmodule import * ... linux_module/ monmodule.so windows_module/ monmodule.pyd ...
Ca permet d'utiliser partout: import monmodule sans avoir à se préoccuper de quel module effectif on va importer: le __init__.py se débrouille tout seul. Dans le cas Linux/Windows, c'est assez peu important, vu que l'extension du module est .so sous Linux et .pyd ou .dll sous Windows. Mais quand on supporte différents Unix, l'extension est .so partout et ce "truc" est bien utile...
Mais dans 99% des cas, le __init__.py est vide... -- python -c 'print "".join([chr(154 - ord(c)) for c in "U(17zX(%,5.z^5(17l8(%,5.Z*(93-965$l7+-"])'
On Fri, 4 Mar 2005 09:48:03 +0100, DAIREAUX Jean-Baptiste <pasdespam.jbdaireaux@llexell.fr.nospam> wrote:
j'ai bien comprit que __init__.py sert à marquer un paquet de module.
mais je ne vois pas ce que l'on peut mettre dedans?
à quoi l'utilisé vous en générale ?
merci d'avance pour vos conseille avisé.
J.B.D.
Voilà un exemple typique d'utilisation que je fais du fichier __init__.py lorsque j'ai un module externe écrit en C et que je veux l'utiliser sur plusieurs plateformes:
monmodule/
__init__.py:
import sys
if sys.platform.startswith('linux'):
from monmodule.linux_module.monmodule import *
elif sys.platform.startswith('win'):
from monmodule.windows_module.monmodule import *
...
linux_module/
monmodule.so
windows_module/
monmodule.pyd
...
Ca permet d'utiliser partout:
import monmodule
sans avoir à se préoccuper de quel module effectif on va importer: le __init__.py se débrouille tout seul. Dans le cas Linux/Windows, c'est assez peu important, vu que l'extension du module est .so sous Linux et .pyd ou .dll sous Windows. Mais quand on supporte différents Unix, l'extension est .so partout et ce "truc" est bien utile...
Mais dans 99% des cas, le __init__.py est vide...
--
python -c 'print "".join([chr(154 - ord(c)) for c in "U(17zX(%,5.z^5(17l8(%,5.Z*(93-965$l7+-"])'
On Fri, 4 Mar 2005 09:48:03 +0100, DAIREAUX Jean-Baptiste wrote:
j'ai bien comprit que __init__.py sert à marquer un paquet de module.
mais je ne vois pas ce que l'on peut mettre dedans? à quoi l'utilisé vous en générale ?
merci d'avance pour vos conseille avisé.
J.B.D.
Voilà un exemple typique d'utilisation que je fais du fichier __init__.py lorsque j'ai un module externe écrit en C et que je veux l'utiliser sur plusieurs plateformes:
monmodule/ __init__.py: import sys if sys.platform.startswith('linux'): from monmodule.linux_module.monmodule import * elif sys.platform.startswith('win'): from monmodule.windows_module.monmodule import * ... linux_module/ monmodule.so windows_module/ monmodule.pyd ...
Ca permet d'utiliser partout: import monmodule sans avoir à se préoccuper de quel module effectif on va importer: le __init__.py se débrouille tout seul. Dans le cas Linux/Windows, c'est assez peu important, vu que l'extension du module est .so sous Linux et .pyd ou .dll sous Windows. Mais quand on supporte différents Unix, l'extension est .so partout et ce "truc" est bien utile...
Mais dans 99% des cas, le __init__.py est vide... -- python -c 'print "".join([chr(154 - ord(c)) for c in "U(17zX(%,5.z^5(17l8(%,5.Z*(93-965$l7+-"])'
Hervé Cauwelier
DAIREAUX Jean-Baptiste wrote:
j'ai bien comprit que __init__.py sert à marquer un paquet de module.
mais je ne vois pas ce que l'on peut mettre dedans?
Sa présence suffit mais tu peux y mettre le copyright et la licence, par exemple.
à quoi l'utilisé vous en générale ?
Tu peux importer des symboles de sous-modules pour les importer sans passer par le sous-module. Tu peux aussi créer des variables, des instances de classe, des fonctions... Exemple :
from monmodule import toto
Avec __init__.py qui aura créé cette variable ou instance de classe ou fonction, etc. « toto ».
Dans les répertoires qui constituent des sous-modules, n'oublie pas de mettre un autre fichier __init__.py
-- Hervé Cauwelier http://www.oursours.net/
DAIREAUX Jean-Baptiste wrote:
j'ai bien comprit que __init__.py sert à marquer un paquet de module.
mais je ne vois pas ce que l'on peut mettre dedans?
Sa présence suffit mais tu peux y mettre le copyright et la licence, par
exemple.
à quoi l'utilisé vous en générale ?
Tu peux importer des symboles de sous-modules pour les importer sans
passer par le sous-module. Tu peux aussi créer des variables, des
instances de classe, des fonctions...
Exemple :
from monmodule import toto
Avec __init__.py qui aura créé cette variable ou instance de classe ou
fonction, etc. « toto ».
Dans les répertoires qui constituent des sous-modules, n'oublie pas de
mettre un autre fichier __init__.py
j'ai bien comprit que __init__.py sert à marquer un paquet de module.
mais je ne vois pas ce que l'on peut mettre dedans?
Sa présence suffit mais tu peux y mettre le copyright et la licence, par exemple.
à quoi l'utilisé vous en générale ?
Tu peux importer des symboles de sous-modules pour les importer sans passer par le sous-module. Tu peux aussi créer des variables, des instances de classe, des fonctions... Exemple :
from monmodule import toto
Avec __init__.py qui aura créé cette variable ou instance de classe ou fonction, etc. « toto ».
Dans les répertoires qui constituent des sous-modules, n'oublie pas de mettre un autre fichier __init__.py