Estoy tratando de dividir mi gran clase en dos; bueno, básicamente en la clase "principal" y un mixin con funciones adicionales, así:
main.py expediente:
import mymixin.py
class Main(object, MyMixin):
def func1(self, xxx):
...
mymixin.py expediente:
class MyMixin(object):
def func2(self: Main, xxx): # <--- note the type hint
...
Ahora, aunque esto funciona bien, la sugerencia de tipo, por MyMixin.func2supuesto, no puede funcionar. No puedo importar main.py, porque obtendría una importación cíclica y sin la pista, mi editor (PyCharm) no puede decir qué selfes.
Estoy usando Python 3.4, dispuesto a pasar a 3.5 si hay una solución disponible allí.
¿Hay alguna forma de que pueda dividir mi clase en dos archivos y mantener todas las "conexiones" para que mi IDE todavía me ofrezca la finalización automática y todas las demás ventajas que se obtienen conociendo los tipos?
self, ya que siempre será una subclase de la clase actual (y cualquier sistema de verificación de tipos debería poder resolver eso por sí solo). ¿Estáfunc2intentando llamarfunc1, que no está definido enMyMixin? ¿Quizás debería ser (comoabstractmethod, quizás)?