私は私の巨大なクラスを2つに分割しようとしています。ええと、基本的には「メイン」クラスと、次のような追加機能を備えたミックスインに入れます。
main.py
ファイル:
import mymixin.py
class Main(object, MyMixin):
def func1(self, xxx):
...
mymixin.py
ファイル:
class MyMixin(object):
def func2(self: Main, xxx): # <--- note the type hint
...
さて、これMyMixin.func2
は問題なく機能しますが、タイプヒントはもちろん機能しません。インポートできません。main.py
循環インポートが行われ、ヒントがないため、エディター(PyCharm)は何を認識できませんself
。
私はPython 3.4を使用していますが、そこでソリューションが利用可能な場合は喜んで3.5に移行します。
クラスを2つのファイルに分割し、すべての「接続」を保持して、IDEが自動補完と、タイプを知っていることから来る他のすべての便利な機能を提供できる方法はありますか?
class Main(MyMixin, SomeBaseClass)
より多くの固有のクラスからメソッドが基本クラスからのものを上書きすることができますように
self
常に現在のクラスのサブクラスになるため、通常はの型に注釈を付ける必要はないと思います(そして、任意の型チェックシステムはそれ自体でそれを理解できるはずです)。で定義されていないfunc2
を呼び出そうとしていますか?多分それは(として、多分)すべきですか?func1
MyMixin
abstractmethod