Я намагаюся розділити свій величезний клас на два; ну, в основному до "основного" класу та мікшину з додатковими функціями, ось так:
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
, можливо)?