मैं अपने विशाल वर्ग को दो में विभाजित करने की कोशिश कर रहा हूं; ठीक है, मूल रूप से "मुख्य" वर्ग और अतिरिक्त कार्यों के साथ एक मिश्रण में, जैसे:
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
है।
मैं पायथन 3.4 का उपयोग कर रहा हूं, अगर कोई समाधान उपलब्ध है तो 3.5 पर जाने के लिए तैयार है।
क्या कोई तरीका है जिससे मैं अपनी कक्षा को दो फ़ाइलों में विभाजित कर सकता हूँ और सभी "कनेक्शन" रख सकता हूँ ताकि मेरी IDE अभी भी मुझे ऑटो पूर्णता प्रदान करे और अन्य सभी प्रकार के उपहार जो इसके प्रकारों को जानते हैं?
class Main(MyMixin, SomeBaseClass)
ताकि अधिक-विशिष्ट वर्ग की विधियां आधार वर्ग से लोगों को ओवरराइड कर सकें
self
, क्योंकि यह हमेशा वर्तमान वर्ग का एक उपवर्ग होने जा रहा है (और किसी भी प्रकार की जाँच प्रणाली को यह पता लगाने में सक्षम होना चाहिए)। हैfunc2
कॉल करने की कोशिश करfunc1
, जिसमें से परिभाषित नहीं हैMyMixin
? शायद यह होना चाहिए (एक के रूप मेंabstractmethod
, शायद)?