Здесь структура, с которой я работаю:
directory/
script.py
subdir/
__init__.py
myclass01.py
myclass02.py
Что я хочу сделать, это импортировать в script.py классы, определенные в myclass01.py
и myclass02.py
. Если я это сделаю:
from subdir.myclass01 import *
Он отлично работает для класса, определенного в myclass01.py
. Но с этим решением, если в subdir
есть несколько классов, определенных в разных файлах, и я хочу их импортировать, мне пришлось бы набирать одну строку для каждого файла. Для этого должен быть ярлык. Я пробовал:
from subdir.* import *
Но это не сработало.
EDIT: вот содержимое файлов:
Это __init__.py
(используя __all__
, как предлагал Апалала):
__all__ = ['MyClass01','MyClass02']
Это myclass01.py
:
class MyClass01:
def printsomething():
print 'hey'
Это myclass02.py
:
class MyClass02:
def printsomething():
print 'sup'
Это script.py
:
from subdir import *
MyClass01().printsomething()
MyClass02().printsomething()
Это трассировка, которую я получаю, когда пытаюсь запустить script.py
:
File "script.py", line 1, in <module>
from subdir import *
AttributeError: 'module' object has no attribute 'MyClass01'