मैं एक वर्ग है:से बचें एक उपवर्ग में सभी तर्कों को निर्दिष्ट
class A(object):
def __init__(self,a,b,c,d,e,f,g,...........,x,y,z)
#do some init stuff
और मैं एक उपवर्ग जो एक अतिरिक्त आर्ग (पिछले W
)
class B(A):
def __init__(self.a,b,c,d,e,f,g,...........,x,y,z,W)
A.__init__(self,a,b,c,d,e,f,g,...........,x,y,z)
self.__W=W
यह सब लिखने के लिए गूंगा लगता है की जरूरत है यह बॉयलर-प्लेट कोड, उदाहरण के लिए B
के सीटीआर से A
के सीटीआर तक सभी तर्कों को पारित करना, तब से A
के सीटीआर में प्रत्येक परिवर्तन B
के कोड में दो अन्य स्थानों पर लागू होना चाहिए।
मुझे लगता है कि पाइथन में ऐसे मामलों को संभालने के लिए कुछ मुहावरे है जो मुझे अनजान हैं। क्या मुझे आपसे सही दिशा निर्देशन मिलेगा?
मेरे सबसे अच्छा कूबड़, एक के लिए कॉपी-ctor का एक प्रकार है और जब पिता का एक उदाहरण दिया तो
class B(A):
def __init__(self,instanceOfA,W):
A.__copy_ctor__(self,instanceOfA)
self.__W=W
इस में बी के कोड बदलने के बाद से मैं हमेशा उपवर्ग बनाने मेरी आवश्यकताओं के अनुरूप होता है कक्षा, हालांकि मुझे यकीन नहीं है कि यह संभव है ...
आपके पास यह है कि कई तर्क, मैं स्थितीय तर्कों का उपयोग नहीं होता है, लेकिन उन सब को तो/उनमें से ज्यादातर kwargs के रूप में और py3 '*' वाक्यविन्यास 'def __initi __ (arg1, arg2, * kwarg1 = ..., ..., kwargx = ..., w = ...) का उपयोग करें kwargs को मजबूर करने के लिए (= पर भरोसा नहीं है आदेश)। 'Def __init __ (स्वयं, arg1, arg2, *, ** kwargs) का उपयोग करना छोटा है, लेकिन मुझे यह पसंद नहीं है क्योंकि आईडीआईएस में कोड को पूरा करने में गड़बड़ है जैसे कि पिचर्म। स्क्रीन कचरे के अलावा, सभी kwargs लिखने में क्या नुकसान है? आपको वैसे भी उन्हें दस्तावेज़ों में दस्तावेज करना होगा ... –