Sto cercando di dividere la mia enorme classe in due; beh, fondamentalmente nella classe "principale" e un mixin con funzioni aggiuntive, in questo modo:
main.py file:
import mymixin.py
class Main(object, MyMixin):
def func1(self, xxx):
...
mymixin.py file:
class MyMixin(object):
def func2(self: Main, xxx): # <--- note the type hint
...
Ora, mentre funziona bene, il suggerimento sul tipo MyMixin.func2ovviamente non può funzionare. Non posso importare main.py, perché otterrei un'importazione ciclica e senza il suggerimento, il mio editor (PyCharm) non può dire cosa selfsia.
Sto usando Python 3.4, disposto a passare a 3.5 se una soluzione è disponibile lì.
C'è un modo per dividere la mia classe in due file e mantenere tutte le "connessioni" in modo che il mio IDE mi offra ancora il completamento automatico e tutte le altre chicche che ne derivano conoscendo i tipi?
class Main(MyMixin, SomeBaseClass)modo che i metodi della classe più specifica possano sovrascrivere quelli della classe base
self, poiché sarà sempre una sottoclasse della classe corrente (e qualsiasi sistema di controllo del tipo dovrebbe essere in grado di capirlo da solo). Stafunc2tentando di chiamarefunc1, che non è definito inMyMixin? Forse dovrebbe essere (comeabstractmethod, forse)?