मैं वीबीए नहीं करता लेकिन पाइथन में, मॉड्यूल मौलिक हैं। जैसा कि आप कहते हैं, नामस्थान के रूप में देखा जा सकता है लेकिन वे भी अपने अधिकार में वस्तुएं हैं। हालांकि वे कक्षाएं नहीं हैं, इसलिए आप उनसे उत्तराधिकारी नहीं हो सकते हैं (कम से कम सीधे नहीं)।
मुझे लगता है कि एक डोमेन क्षेत्र से संबंधित मॉड्यूल रखने के लिए यह एक अच्छा नियम है। नियम जो मैं यह तय करने के लिए करता हूं कि कोई मॉड्यूल स्तर फ़ंक्शन या क्लास विधि है या नहीं, यह पूछना है कि क्या इसका अर्थ किसी भी ऑब्जेक्ट पर अर्थपूर्ण रूप से किया जा सकता है जो 'इंटरफ़ेस' को संतुष्ट करता है जो तर्क है। यदि ऐसा है, तो मैं इसे कक्षा पदानुक्रम से मुक्त करता हूं और इसे मॉड्यूल स्तर का कार्य करता हूं। यदि इसकी उपयोगिता सचमुच किसी विशेष श्रेणी पदानुक्रम तक ही सीमित है, तो मैं इसे एक विधि बना देता हूं।
यदि आपको कक्षा पदानुक्रम के सभी उदाहरणों पर काम करने की आवश्यकता है और आप इसे मॉड्यूल लेवल फ़ंक्शन बनाते हैं, तो बस याद रखें कि सभी उप-वर्गों को अभी भी दिए गए इंटरफ़ेस के साथ दिए गए इंटरफ़ेस को लागू करने की आवश्यकता है। यह तरीकों से दूर कदम उठाने के ट्रेडऑफ में से एक है: अब आप थोड़ा बदलाव नहीं कर सकते हैं और super
पर कॉल कर सकते हैं। दूसरी ओर, यदि उप-वर्गों में इंटरफ़ेस और इसके अर्थशास्त्र को फिर से परिभाषित करने की संभावना है, तो हो सकता है कि वह विशेष श्रेणी पदानुक्रम एक बहुत अच्छा अमूर्त नहीं है और इसे पुनर्विचार किया जाना चाहिए।
हाँ यह बहुत शांत है कि अजगर में मैं सफेद अगर एक कर सकते हैं b_handler आयात लेकिन VB में मैं नहीं कर सकता यह आप मॉड्यूल स्तर समारोह के उदाहरण पता है जो नहीं है :(करें एक सिंगलटन फ़ंक्शन (अन्य उत्तरों देखें)? – nikaan
@ निकिता मुझे नहीं पता कि सिंगलटन फ़ंक्शन द्वारा आपका क्या मतलब है। एक सिंगलटन एक मॉड्यूल के बारे में सोचने का एक (शायद ही कभी अच्छा तरीका है) लेकिन मुझे लगता है कि आप ओओ अवधारणाओं को मजबूर करने की कोशिश कर रहे हैं एक गैर ओओ मुहावरे पर। – aaronasterling