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.func2
supuesto, 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é self
es.
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áfunc2
intentando llamarfunc1
, que no está definido enMyMixin
? ¿Quizás debería ser (comoabstractmethod
, quizás)?