Je suis en train d'écrire mon premier script python et cette histoire de package/module me rend fou. Commençons par la structure de mon dossier
builder.py
-buildModule\__init__.py
-buildModule\AppList.py
-buildModule\BuildClass.py
-buildModule\ConfigSystem.py
-buildModule\MenuSystem.py
-buildModule\Singleton.py
d'accord, donc mon __init__.py
ressemble à ça
from ConfigSystem import *
from BuildClass import *
from MenuSystem import *
from AppList import *
from buildModule.Singleton import Singleton
Maintenant, j'essaie de décorer mon configsystem en tant que singleton donc mon singleton ressemble à
class Singleton:
def __init__(self, decorated):
self._decorated = decorated
def Instance(self):
try:
return self._instance
except AttributeError:
self._instance = self._decorated()
return self._instance
def __call__(self):
raise TypeError(
'Les singletons doivent être accédés via la méthode `Instance`.')
et maintenant, avec ma classe configsystem, si je lis le manuel correctement, cela devrait fonctionner
import Singleton
@Singleton
class ConfigSystem:
mais j'obtiens
TypeError: 'module' object is not callable
J'ai lu la partie du manuel sur les modules plusieurs fois maintenant et je ne comprends pas tout à fait. Pourquoi cela ne fonctionne-t-il pas?
Y a-t-il un tutoriel sur les modules/packages quelque part qui est écrit un peu plus clairement/différemment que le manuel?