Saya mencoba untuk membagi kelas besar saya menjadi dua; baik, pada dasarnya ke dalam kelas "utama" dan campuran dengan fungsi tambahan, seperti:
main.py
mengajukan:
import mymixin.py
class Main(object, MyMixin):
def func1(self, xxx):
...
mymixin.py
mengajukan:
class MyMixin(object):
def func2(self: Main, xxx): # <--- note the type hint
...
Sekarang, sementara ini berfungsi dengan baik, petunjuk jenis MyMixin.func2
tentu saja tidak dapat berfungsi. Saya tidak bisa mengimpor main.py
, karena saya mendapatkan impor siklik dan tanpa petunjuk, editor saya (PyCharm) tidak tahu apaself
itu.
Saya menggunakan Python 3.4, bersedia pindah ke 3.5 jika solusi tersedia di sana.
Adakah cara untuk membagi kelas saya menjadi dua file dan menyimpan semua "koneksi" sehingga IDE saya masih menawarkan penyelesaian otomatis & semua hal lain yang berasal darinya dengan mengetahui jenisnya?
self
, karena ini akan selalu menjadi subclass dari kelas saat ini (dan sistem pengecekan tipe apa pun harus dapat mengetahuinya sendiri). Apakahfunc2
mencoba meneleponfunc1
, yang tidak ditentukan dalamMyMixin
? Mungkin harus (sebagaiabstractmethod
, mungkin)?