Tengo un directorio con un número de archivos .py
en él. cada archivo define algunas clases. También tengo un __init__.py
vacío en el directorio.módulo no tiene atributo
Por ejemplo:
myproject
__init__.py
mymodule
__init__.py
api.py
models.py
views.py
Estoy tratando de importar mymodule
y acceder a las clases definidas en todos estos archivos:
from myproject import mymodule
print mymodule.api.MyClass
Me da un error que dice que mymodule
tiene ningún atributo api
. ¿Por qué? ¿Y por qué puedo acceder solo a uno de los archivos (models.py
) y no a los demás?
In [2]: dir(banners)
Out[2]:
['__builtins__',
'__doc__',
'__file__',
'__name__',
'__package__',
'__path__',
'models']
Sé que puedo hacer eso. ¿Es posible usar los nombres punteados? – akonsu
@akonsu, simplemente haga 'import myproject.mymodule.api' luego y acceda a través de' myproject.mymodule.api.MyClass'. –
bueno, creo que esta es una pregunta sobre el lenguaje en general, no sobre cómo puedo hacer que mi código funcione. Tengo curiosidad sobre si esto puede lograrse. ¿Puedo hacer que acceda a mis clases a través de 'mymodule.api ...' sin el 'myproject' líder? – akonsu