J'essaye de diviser ma classe énorme en deux; enfin, essentiellement dans la classe "main" et un mixin avec des fonctions supplémentaires, comme ceci:
main.py
fichier:
import mymixin.py
class Main(object, MyMixin):
def func1(self, xxx):
...
mymixin.py
fichier:
class MyMixin(object):
def func2(self: Main, xxx): # <--- note the type hint
...
Maintenant, bien que cela fonctionne très bien, l'indication de type MyMixin.func2
ne peut bien sûr pas fonctionner. Je ne peux pas importer main.py
, car j'obtiendrais une importation cyclique et sans l'indice, mon éditeur (PyCharm) ne peut pas dire ce que self
c'est.
J'utilise Python 3.4, prêt à passer à 3.5 si une solution y est disponible.
Est-il possible que je puisse diviser ma classe en deux fichiers et conserver toutes les "connexions" afin que mon IDE me propose toujours la complétion automatique et tous les autres avantages qui en découlent en connaissant les types?
self
, car ce sera toujours une sous-classe de la classe actuelle (et tout système de vérification de type devrait être capable de le comprendre seul). Est lafunc2
tentative d'appelfunc1
, qui n'est pas défini dansMyMixin
? Peut-être que cela devrait être (en tant queabstractmethod
, peut-être)?