Я пытаюсь разделить свой огромный класс на два; ну, в основном в "основной" класс и миксин с дополнительными функциями, например так:
main.py
файл:
import mymixin.py
class Main(object, MyMixin):
def func1(self, xxx):
...
mymixin.py
файл:
class MyMixin(object):
def func2(self: Main, xxx): # <--- note the type hint
...
Теперь, хотя это работает нормально, подсказка MyMixin.func2
типа, конечно, не может работать. Я не могу импортировать main.py
, потому что получаю циклический импорт, и без подсказки мой редактор (PyCharm) не может сказать, что это self
такое.
Я использую Python 3.4, готов перейти на 3.5, если там есть решение.
Есть ли способ разделить мой класс на два файла и сохранить все «соединения», чтобы моя IDE по-прежнему предлагала мне автоматическое завершение и все другие полезности, которые исходят от него, зная типы?
self
, поскольку он всегда будет подклассом текущего класса (и любая система проверки типов должна иметь возможность вычислить это самостоятельно). Является лиfunc2
пытаться вызовfunc1
, который не определен вMyMixin
? Может быть (какabstractmethod
, может быть)?