Tôi đang cố gắng chia lớp học lớn của mình thành hai; về cơ bản, về cơ bản là lớp "chính" và một mixin với các chức năng bổ sung, như sau:
main.py
tập tin:
import mymixin.py
class Main(object, MyMixin):
def func1(self, xxx):
...
mymixin.py
tập tin:
class MyMixin(object):
def func2(self: Main, xxx): # <--- note the type hint
...
Bây giờ, mặc dù điều này hoạt động tốt, nhưng loại gợi ý trong MyMixin.func2
tất nhiên không thể hoạt động. Tôi không thể nhập main.py
, bởi vì tôi muốn nhập theo chu kỳ và nếu không có gợi ý, trình soạn thảo của tôi (PyCharm) không thể biết đó self
là gì .
Tôi đang sử dụng Python 3.4, sẵn sàng chuyển sang 3.5 nếu có giải pháp ở đó.
Có cách nào tôi có thể chia lớp của mình thành hai tệp và giữ tất cả các "kết nối" để IDE của tôi vẫn cung cấp cho tôi tính năng tự động hoàn thành và tất cả các tiện ích khác đến từ nó khi biết các loại không?
self
nó, vì nó sẽ luôn là một lớp con của lớp hiện tại (và bất kỳ hệ thống kiểm tra kiểu nào cũng có thể tự tìm ra điều đó). Đangfunc2
cố gọifunc1
, mà không được xác định trongMyMixin
? Có lẽ nó phải là (như mộtabstractmethod
, có thể)?