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.func2
ovviamente 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 self
sia.
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). Stafunc2
tentando di chiamarefunc1
, che non è definito inMyMixin
? Forse dovrebbe essere (comeabstractmethod
, forse)?