मेरे पास एक कक्षा है, ए, जिसे अन्य वर्गों के समूह द्वारा विरासत में मिला है। इनमें से कुछ में कुछ फ़ंक्शन हैं जो समान हैं और यह अच्छा होगा कि उन कार्यों को कहीं और परिभाषित किया जाए और उन वर्गों द्वारा बुलाया जाए जिन्हें उनकी आवश्यकता है। लेकिन उन कार्यों को सुपर क्लास में परिभाषित कार्यों को कॉल करें।पायथन - क्या यह बाहरी फ़ंक्शन को पास करना ठीक है
class A():
def imp_func(*args):
# called by the child class functions
Class B(A):
def common_func(self):
# some stuff
self.imp_func(*args)
तो मैं अपने सहायक कार्य करता है जो एक तर्क के रूप self object
ले बनाया है और मैं सहायक कार्यों अंदर से imp_func
कॉल कर सकते हैं।
def helper_func(obj, some_args):
# some common stuff
obj.imp_func(*args)
class B(A):
def common_func(self):
# unique stuff
helper_func(self, some_args)
इससे समस्या हल हो जाती है।
लेकिन क्या मुझे यह करना चाहिए? क्या यह पाइथोनिक है?
इसमें बिल्कुल कोई समस्या नहीं है। 'स्वयं' * बस * उदाहरण के संदर्भ में है, यह निजी नहीं है और न ही इसे अन्य कार्यों में पारित करना खतरनाक है। –
आपको ऐसा करने की आवश्यकता क्यों है? 'बी' को 'ए' से' imp_func 'विरासत में मिला है, इसलिए आप बिना किसी समस्या के 'b.common_func' में' self.imp_func (* args) 'को कॉल कर सकते हैं। –
@FlorianBrucker केवल एक समारोह नहीं है, लेकिन एक जोड़े जो माता-पिता वर्ग से बुलाया जाता है, और कुछ को कई कक्षाओं में कई कार्यों में दो बार कहा जाता है। यह बहुत फूला हुआ वर्ग और कार्यों की ओर जाता है। यह उन कार्यों को लिखने में भी समय लगता है। सहायक कक्षाओं का उपयोग समय, प्रयास को बचाएगा और कोड को साफ और अधिक बनाए रखने योग्य बनाएगा। – elssar