class _ContextState(enum.Enum):
...
class AsyncSocket(Context):
def __init__(self, *args):
self._state = _ContextState.INITIAL
Если короче, то:
- вложенные классы - это плохо
- названия классов всегда в PascalCase
- как и методы, классы могут быть приватными, если их название начинается с символа подчеркивания
- если все объекты класса предназначены только для внутреннего использования, то этот класс можно сделать приватным
Хотя иногда все же можно использовать вложенные классы, но только если они приватные и нужны только в одном классе:
class Context:
class _State(enum.Enum):
...
def __init__(self):
self._state = Context._State.INITIAL