我正试图将我的大班分成两部分;好吧,基本上是进入“主”类和具有其他功能的mixin的,就像这样:
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。
有什么办法可以将我的班级分成两个文件并保留所有“连接”,以便我的IDE仍然可以自动完成以及知道类型的所有其他优点。
class Main(MyMixin, SomeBaseClass)
以便更特定类的方法可以覆盖基类中的方法
self
,因为它总是将成为当前类的子类(并且任何类型检查系统都应该能够自己找出原因)。是否在func2
尝试调用func1
,未在中定义MyMixin
?也许应该(作为一个abstractmethod
,也许)?