Cela fait longtemps que je la recherche et que je ne trouve rien. Je suis un programmeur expérimenté, mais récemment passé en Python.Comment configurer le répertoire du module/module python et la définition de la classe pour une dénomination intuitive
En bref, je veux développer/évoluer une bibliothèque orientée objet des classes associées dans un espace de noms avec plusieurs fichiers séparés (en raison de la complexité et le désir de modularité accrue):
Actuellement, je pourrais avoir:
# file lib/NameSpace.py
class Foo(object):
def __init__(self):
....
class Bar(object):
def __init__(self):
....
class Baz(object):
def __init__(self):
....
et avec ce programme peut-il faire:
import NameSpace
a = NameSpace.Foo()
b = NameSpace.Bar()
maintenant, ces classes se compliquent et Foo et Bar sont functionall y différent quoique lié dans le NameSpace conceptuel, donc je veux les déplacer pour séparer les fichiers dans l'espace de noms mais sinon garder ma bibliothèque de code la même chose.
Donc, je pense que je veux une structure de fichier comme ceci:
lib/NameSpace
lib/NameSpace/__init__.py
lib/NameSpace/Foo.py
lib/NameSpace/Bar.py
lib/NameSpace/Baz.py
Mais cela me demander de changer tout le code d'exécution pour initialiser ceux-ci comme si:
import NameSpace.Foo
a = NameSpace.Foo.Foo()
# ***Boo.**** Why u not like 'a = NameSpace.Foo()'?
Alors, comment Je structure ces choses pour ne pas avoir à ajouter le nom de la classe 'Foo' au module 'Foo'? Je pourrais accomplir ceci en éditant .py initialisation d'être une usine, comme ceci:
#lib/NameSpace/__init__.py
import NameSpace.Foo as NSF
def Foo(*args, **kwargs):
return(NSF.Foo(*args,**kwargs))
Mais que tout semble plus inélégant que j'attends de Python. Y a-t-il une meilleure façon de le faire?
Parfait. Merci! – Kevin