Я разрабатываю довольно сложное приложение для своей компании, следуя объектно-ориентированной модели в python3. Приложение содержит несколько пакетов и подпакетов, каждый из которых, конечно, содержит модуль __init__.py.
В основном я использовал эти модули __init__.py для объявления общих классов для пакета внутри них, которые предназначены для использования в качестве абстрактных шаблонов только для их соответствующего пакета.
Теперь мой вопрос: Является ли это "хорошим" / "правильным" / "питоническим" способом использования модулей __init__.py? Или я предпочитаю объявлять свои общие классы где-то еще?
Чтобы привести пример, допустим пакет mypkg
:
mypkg.__init__.py
:
class Foo(object):
__some_attr = None
def __init__(self, some_attr):
self.__some_attr = some_attr
@property
def some_attr(self):
return self.__some_attr
@some_attr.setter
def some_attr(self, val):
self.__some_attr = val
mypkg.myfoo.py
:
from . import Foo
class MyFoo(Foo):
def __init__(self):
super().__init__("this is my implemented value")
def printme(self):
print(self.some_attr)